Nutch没有抓取除了seed.txt中指定的URL之外的URL

时间:2017-02-27 23:29:42

标签: apache web-crawler nutch

我使用的是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上的每个网址,这当然是我不想要的。

如果有人碰巧遇到同样的问题,请分享您是如何克服它的。

2 个答案:

答案 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>