我是新来的荷兰人。经过几个小时的搜索后,我无法弄清楚如何为我的抓取工具选择正确的设置。
首先,我使用hbase 0.94.14和elasticsearch 1.4.2在Ubuntu 14.04上安装了nutch 2.3。
我开始使用nutch在nutch的runtime / local目录中运行以下命令:
bin/nutch inject seedfolder
bin/nutch generate -topN 20
bin/nutch fetch -all
bin/nutch parse -all
bin/nutch updatedb -all
bin/nutch index -all
然后我可以通过elasticsearch访问已爬网的数据。所以一切似乎都很好。
当我想让nutch只抓取我感兴趣的网站时,我的问题就出现了。我读了很多教程,包括我在apache网站上找到的教程。让我困惑的一件事是nutch版本之间的巨大差异。但也有一些我从未被问过或回答过的问题。
我想做什么: 我想告诉nutch要抓取哪个页面(当然它会更多,但让我们保持简单)。我这样做是通过在我的种子文件中添加一个url并调用nutch注入。现在让我们说我想更准确地抓取http://www.pagetocrawl.com/intresting-facts我对
的内容感兴趣http://www.pagetocrawl.com/intresting-facts?interesting-fact-id=1
http://www.pagetocrawl.com/intresting-facts?interesting-fact-id=2
http://www.pagetocrawl.com/intresting-facts?interesting-fact-id=3
...
我认为必要的是编辑NUTCH_HOME / runtime / local / conf / regex-urlfilter.xml并添加类似
的内容+http://www.pagetocrawl.com/intresting-facts
当我尝试运行generate和fetch命令时,我注意到事实上nutch只抓取了以pagetocrawl.com开头的网站,并没有触及我之前注入的其他网站。但随后它抓取了所有页面
http://www.pagetocrawl.com/interesting-facts
链接到。这是印记,在哪里找到我们的页面等。最后它甚至没有抓住一个有趣的事实网站。所以我的两个最重要的问题是:我怎么能告诉nutch只抓取我的网站中由regex-urlfilter.xml过滤的那些也匹配特定模式的子网站?在下一步中:我如何确保抓取所有相关的子网站(只要您链接到http://www.pagetocrawl.com/interesting-facts网站)?
我看了
http://www.stackoverflow.com/questions/19731904/exclude-urls-without-www-from-nutch-1-7-crawl
但是这里的问题似乎更早出现了我将我的网址添加到regex-urlfilter.xml并且它似乎正在工作 - 只是不是我希望它工作的方式。
我也读过这个问题:
http://www.stackoverflow.com/questions/3253525/how-to-index-only-pages-with-certain-urls-with-nutch
这似乎描述了我遇到的同样问题。但是由于我正在使用nutch 2.3,mergedb命令似乎不再起作用了。
我真的希望我描述了我的问题,并且有人可以帮助我。