Regex Nutch正则表达式不';Don’别按我想要的方式爬行

Regex Nutch正则表达式不';Don’别按我想要的方式爬行,regex,search-engine,nutch,Regex,Search Engine,Nutch,好吧,我已经问过了,但我想我没有按Stackover期望的方式问。希望这次我能得到更多的运气和答案 我正在尝试运行nutch来爬网此站点: 我希望它爬网该网站和所有子链接 问题是它不起作用。在我的reg ex文件中,我尝试了几种方法,但没有一种有效: +^http://([a-z0-9]*\.)*tigerdirect.com/ +^http://tigerdirect.com/([a-z0-9]*\.)* 我的URL.txt是: http://tigerdirect.com 基本上,我试

好吧,我已经问过了,但我想我没有按Stackover期望的方式问。希望这次我能得到更多的运气和答案

我正在尝试运行nutch来爬网此站点:

我希望它爬网该网站和所有子链接

问题是它不起作用。在我的reg ex文件中,我尝试了几种方法,但没有一种有效:

+^http://([a-z0-9]*\.)*tigerdirect.com/

+^http://tigerdirect.com/([a-z0-9]*\.)*
我的URL.txt是:

http://tigerdirect.com
基本上,我试图完成的是对他们网站上的所有产品页面进行爬网,这样我就可以创建一个电子产品搜索引擎(我正在使用solr)。最终,我想抓取百思买、新蛋和其他网站

顺便说一句,我遵循了这里的教程:我正在使用会话3.3中提到的脚本(在修复了一个bug之后)

我有java、android和bash的背景,所以这对我来说有点陌生。5年前,我曾用perl编写正则表达式,但现在都忘了


谢谢

两个正则表达式的末尾都有一个/,但URL没有

http://tigerdirect.com/
将匹配,
http://tigerdirect.com
将不会

+^http://tigerdirect.com/([a-z0-9]*\)*
试着把尾部的斜线移到栅栏里
+^http://tigerdirect.com(/[a-z0-9]*\)*

根据你的评论,我看到你以前爬过一些东西,这就是你的疯子开始爬过维基百科的原因

当您使用Nutch对某个内容进行爬网时,它会在一个表中记录一些metada(如果您使用Hbase,它是一个名为webpage的表),当您完成爬网并启动一个新的表时,该表将被扫描,如果有一个记录包含metada,则会显示“此记录可以再次获取,因为下一次获取时间已过”Nutch开始获取该URL以及您的新URL

所以,如果你想在你的系统上爬行,你必须先清理这个表。如果使用Hbase启动shell:

./bin/hbase shell
和禁用表:

disable 'webpage'
最后放下它:

drop 'webpage'
我可以截断那张桌子,但把它移走了

下一步是将其放入seed.txt:

http://www.tigerdirect.com/
打开位于以下位置的regex-urlfilter.txt:

nutch/runtime/local/conf
把那一行写进去:

+^http://([a-z0-9]*\.)*www.tigerdirect.com/([a-z0-9]*\.)*
您将放置该行而不是
+。

我已经表示要抓取tigerdirect的子域,这取决于您


之后,您可以将其发送到solr中进行索引并对其进行搜索。我已经试过了,效果不错,不过你可能会在Nutch方面有一些错误,但这是另一个话题。

嗨,谢谢。然而,它没有起作用。纳奇仍然继续前进,爬上了维基百科。你知道为什么吗?等等,它爬错网址了?我注意到的一件事是,tigerdirect URL中并不仅仅包含a-z0-9<代码>http://www.tigerdirect.com/applications/category/guidedSearch.asp?CatId=6838&cm_re=Homepage- -SPOT % 2023 - -cATDY16838 < /Cord>您还必须考虑资本、、、、、、、、和。您的正则表达式可能更好
+^http://tigerdirect.com(/[a-zA-Z0-9-\&\?=%]*\)*
(不确定是否需要使用此正则表达式引擎转义?)好的,我想我需要添加其余部分,以便抓取我想要的内容,但我甚至无法做到这一点。它只使用正则表达式“+^*\”)对维基百科进行了爬网。维基百科的URL远没有嵌套的那么复杂。我不明白的是,它怎么能在正则表达式中说tigerdirect,但仍然在维基百科上爬行好吧,这是我的错误。我不小心留下了“+”,当我现在删除它时,它不会抓取维基百科,但nutch也不会抓取任何?链接如果你能帮我,我可以把你的答案标记为正确。谢谢,让我试试这个reg-ex。我删除了我所有的solr数据,所以我知道我没有任何记录。我现在的问题是我找不到一种方法来抓取tigerdirect的产品页面。产品页面的链接是?其次是CatID等。Solr的数据和Nutch的数据位于不同的位置。Solr将数据存储在Solr主文件夹的数据文件夹下。Nutch存储在不同的位置(即Hbase的网页表),另一方面,我看到指向产品的链接可能位于不同的页面。i、 这是您想要索引的内容之一吗?好的,那么如果我再次运行nutch,它是否只是附加到它已经在内部存储的数据中?因为当我清除solr数据并运行nutch时,我只接收最后一次爬网的数据,而不接收前一次爬网的数据。至于我想做什么,基本上我想创建一个搜索引擎,从tigerdirect索引产品,所以我想爬tigerdirect一天一次或两次,以获得他们所有的产品信息。现在我只是想为他们的页面创建一个索引。接下来,我想从每个页面中提取数据(但这不是针对这个问题),以便以有意义的方式显示它。当您给出seed.txt时,Nutch会将它们放入其表中(Nutch的注入过程),当您使用Nutch抓取网站时,它会将所有内容记录在一个表中。当您再次运行Nutch时,Nutch要做的第一件事就是检查表。开始检查该表中的URL。如果下一次获取URL的时间到了,Nutch会抓取它。如果没有,我想它会跳过这个URL。因此,当您将一个新的seed.txt指向Nutch时,您会将新的URL注入Nutch。这就是为什么当Nutch开始爬行时,您会看到一些其他URL。@JuanAcevedo您能做到吗?