gpt4 book ai didi

regex - Nutch 正则表达式没有按照我想要的方式爬行

转载 作者:行者123 更新时间:2023-12-02 05:07:10 25 4
gpt4 key购买 nike

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

我正在尝试运行 nutch 来抓取此站点:http://www.tigerdirect.com/

我希望它抓取该网站和所有子链接。

问题是它不工作。在我的 reg-ex 文件中,我尝试了几件事,但都没有奏效:

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

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

我的 urls.txt 是:

http://tigerdirect.com

基本上我想要完成的是抓取他们网站上的所有产品页面,这样我就可以创建一个电子产品的搜索引擎(我正在使用 solr)。最后我还想抓取 bestbuy.com、newegg.com 和其他网站。

顺便说一句,我从这里开始学习教程:http://wiki.apache.org/nutch/NutchTutorial我正在使用 session 3.3 中提到的脚本(在修复了它的错误之后)。

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

谢谢!

最佳答案

根据您的评论,我看到您之前已经爬过一些东西,这就是您的 Nutch 开始爬维基百科的原因。

当你用 Nutch 爬取一些东西时,它会在一个表中记录一些元数据(如果你使用 Hbase,它是一个名为 webpage 的表)当你完成一个爬取并开始一个新的爬取时,该表被扫描,如果有一条记录有元数据显示“可以再次获取此记录,因为下一次获取时间已过”Nutch 开始获取该 url 以及您的新 url。

所以如果你只想拥有 http://www.tigerdirect.com/在你的系统上爬行你必须先清理那个表。如果使用 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 端可能会遇到一些错误,但这是另一个要讨论的话题。

关于regex - Nutch 正则表达式没有按照我想要的方式爬行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16109633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com