我正在使用与mysql集成的Nutch 2.1。我抓了两个站点,Nutch成功抓取它们并将数据存储到Mysql中。我正在使用Solr 4.0.0进行搜索。
现在我的问题是,当我尝试重新抓取某些网站(例如trailer.apple.com或任何其他网站)时,它总是抓取最后抓取的网址。即使我已从seeds.txt文件中删除了最后一个已抓取的网址,也输入了新的网址。但是Nutch没有抓住新的Urls。
任何人都可以告诉我,实际上我做错了什么。
另外,请向我推荐任何可以帮助抓取视频和电影网站的Nutch插件。
任何帮助都会非常明显。
答案 0 :(得分:2)
我有同样的问题。 Nutch只重新抓取旧网址,即使它们不存在于seed.txt中。
我第一次开始荷兰时,我会做以下事情:
在/ root / Desktop / apache-nutch 2.1 / runtime / local / urls / seed.txt(不含引号)中添加域“www.domain01.com”
在/root/Desktop/apache-nutch-2.1/runtime/local/conf/regex-urlfilter.txt中,添加新行:
#接受任何其他事项 ^ HTTP://([A-Z0-9] *)* www.domain01.com /运动/
在/root/Desktop/apache-nutch-2.1/conf/regex-urlfilter.txt中,添加新行:
#接受任何其他事项 ^ HTTP://([A-Z0-9] *)* www.domain01.com /运动/
......一切都很好。
接下来我做了以下更改:
从/root/Desktop/apache-nutch-2.1/runtime/local/urls/seed.txt删除www.domain01.com并添加两个新域名:www.domain02.com和www.domain03.com
从/root/Desktop/apache-nutch-2.1/runtime/local/conf/regex-urlfilter.txt删除www.domain01.com并添加两行:
#接受任何其他事项
^ HTTP://([A-Z0-9] *) www.domain02.com/sport/
^ HTTP://([A-Z0-9] )* www.domain03.com /运动/
从/root/Desktop/apache-nutch-2.1/conf/regex-urlfilter.txt删除www.domain01.com并添加两行:
#接受任何其他事项
^ HTTP://([A-Z0-9] *) www.domain02.com/sport/
^ HTTP://([A-Z0-9] )* www.domain03.com /运动/
接下来,我执行以下命令:
updatedb
bin/nutch inject urls
bin/nutch generate urls
bin/nutch updatedb
bin/nutch crawl urls -depth 3
而且荷兰人还在爬网www.domain01.com
我不知道为什么?
我在Linux Debian 6.0.5(x64)上使用Nutch 2.1。 Linux是在Windows 7(x64)上的虚拟机上启动的。
答案 1 :(得分:1)
这篇文章有点过时但对大多数部分仍然有效:http://pascaldimassimo.com/2010/06/11/how-to-re-crawl-with-nutch/也许最后抓取的页面是最有变化的页面。 Nutch使用自适应算法来安排重新爬行,因此当页面非常静态时,不应经常重新爬行。您可以使用nutch-site.xml覆盖要重新抓取的频率。此外,seed.txt文件应该是一个种子列表,一旦你注入了Nutch不再使用它的URL(除非你再次手动重新注入它)
另一种可能有用的配置是你的regex-urlfilter.txt,如果你想指向一个特定的地方或排除某些域名/页面等。
干杯。
答案 2 :(得分:0)
你只需在属性标记下面添加你的nutch-site.xml。它适用于我,,,,,,,检查它..........
<property>
<name>file.crawl.parent</name>
<value>false</value>
</property
你只需更改regex-urlfilter.txt
#skip文件:ftp:和mailto:urls
# - ^(文件| FTP |邮寄地址):
#接受其他任何事情
+。
删除后索引dir手册或命令也喜欢.. rm -r $ NUTCH_HOME / indexdir
运行后你爬行cammand ...........