我使用的是Apache Nutch 1.12,我尝试抓取的网址类似于https://www.mywebsite.com/abc-def/,这是我的seed.txt文件中的唯一条目。因为我不希望任何页面在URL中没有“abc-def”,所以我将以下行放在regex-urlfilter.txt中:
+^https://www.mywebsite.com/abc-def/(.+)*$
当我尝试运行以下抓取命令时:
**/bin/crawl -i -D solr.server.url=http://mysolr:3737/solr/coreName $NUTCH_HOME/urls/ $NUTCH_HOME/crawl 3**
它只抓取并索引一个seed.txt网址,在第二次迭代中它只是说:
Generator: starting at 2017-02-28 09:51:36
Generator: Selecting best-scoring urls due for fetch.
Generator: filtering: false
Generator: normalizing: true
Generator: topN: 50000
Generator: 0 records selected for fetching, exiting ...
Generate returned 1 (no new segments created)
Escaping loop: no more URLs to fetch now
当我更改regex-urlfilter.txt以允许所有内容(+。)时,它开始索引https://www.mywebsite.com上的每个网址,这当然是我不想要的。
如果有人碰巧遇到同样的问题,请分享您是如何克服它的。
答案 0 :(得分:0)
您可以尝试调整conf / nutch-default.xml中可用的属性。也许控制你想要的外链数量或修改获取属性。如果您决定覆盖任何属性,请将该信息复制到conf / nutch-site.xml并在其中添加新值。
答案 1 :(得分:0)
在过去2天内尝试了多件事后得到了工作。这是解决方案:
由于我抓取的网站非常繁重,因此nutch-default.xml中的属性将其截断为65536字节(默认值)。我想抓取的链接不能包含在所选部分中因此,nutch没有抓取它。当我通过在nutch-site.xml中放入以下值将其更改为无限时,它开始抓取我的页面:
<property>
<name>http.content.limit</name>
<value>-1</value>
<description>The length limit for downloaded content using the http://
protocol, in bytes. If this value is nonnegative (>=0), content longer
than it will be truncated; otherwise, no truncation at all. Do not
confuse this setting with the file.content.limit setting.
</description>
</property>