任何人都可以打电话给我如何抓取同一个域的所有其他页面。
例如,我在seed.txt。
中提供网站http://www.techcrunch.com/在nutch-site.xml中添加了以下属性
<property>
<name>db.ignore.internal.links</name>
<value>false</value>
<description>If true, when adding new links to a page, links from
the same host are ignored. This is an effective way to limit the
size of the link database, keeping only the highest quality
links.
</description>
</property>
以下内容在regex-urlfilter.txt中添加
+
注意:如果我在seed.txt中添加http://www.tutorialspoint.com/,我可以抓取所有其他网页,但不能抓取techcrunch.com的网页,尽管它还有很多其他网页。
请帮忙..?
答案 0 :(得分:3)
在nutch-default.xml
中将db.ignore.external.links
设置为true
,将“db.ignore.external.links.mode”设置为byDomain
。像这样:
<property>
<name>db.ignore.external.links</name>
<value>true</value>
</property>
<property>
<name>db.ignore.external.links.mode</name>
<value>byDomain</value>
</property>
默认情况下,db.ignore.external.links.mode
设置为byHost
。这意味着在抓取http://www.techcrunch.com/
时,网址http://subdomain1.techcrunch.com
将被视为EXTERNAL,因此将被忽略。但是您也希望抓取sudomain1
个网页 - 因此db.ignore.external.links.mode
保持byDomain
regex-urlfilter.txt
无需解决问题。对于某些复杂情况,请使用regex-urlfilter.txt
答案 1 :(得分:1)
我认为你使用了错误的属性,首先在nutch-site.xml中使用db.ignore.external.links
<property>
<name>db.ignore.external.links</name>
<value>true</value>
<description>If true, outlinks leading from a page to external hosts
will be ignored. This will limit your crawl to the host on your seeds file.
</description>
</property>
b)然后你也可以在regex-urlfilter.txt中使用正则表达式来限制抓取的域名只是techcrunch。
+^(http|https)://.*techcrunch.com/
然而我认为您的问题是Nutch服从robots.txt文件,在这种情况下,techcrunch的抓取延迟值为3600 !!见robots.txt。 fetcher.max.crawl.delay的默认值为30秒,使Nutch从techcrunch中删除所有页面。
来自nutch-default
中的fetcher.max.crawl.delay"If the Crawl-Delay in robots.txt is set to greater than this value (in
seconds) then the fetcher will skip this page, generating an error report.
If set to -1 the fetcher will never skip such pages and will wait the
amount of time retrieved from robots.txt Crawl-Delay, however long that
might be."
您可能希望使用fetcher.threads.fetch和fetcher.threads.per.queue值来加速抓取。您还可以查看this并使用Nutch代码...或者您甚至可能希望使用其他方法来抓取长爬网延迟的网站。
希望这对你有用。
干杯!