1

私は、moderngov.co.uk を使用して実行しているサイトを持っています (テンプレートを送信すると、テンプレートがアップロードされます)。このサイトをクロールして、Solr でインデックスを作成し、drupal サイトで検索できるようにしようとしています。大部分の Web サイトをクロールできますが、何らかの理由でこれをクロールできません: http://scambs.moderngov.co.uk/uuCoverPage.aspx?bcr=1

私が得る特定のエラーはこれです:

Injector: starting at 2013-10-17 13:32:47
Injector: crawlDb: X-X/crawldb
Injector: urlDir: urls/seed.txt
Injector: Converting injected urls to crawl db entries.
Injector: total number of urls rejected by filters: 1
Injector: total number of urls injected after normalization and filtering: 0
Injector: Merging injected urls into crawl db.
Injector: finished at 2013-10-17 13:32:50, elapsed: 00:00:02
Thu, Oct 17, 2013 1:32:50 PM : Iteration 1 of 2
Generating a new segment
Generator: starting at 2013-10-17 13:32:51
Generator: Selecting best-scoring urls due for fetch.
Generator: filtering: false
Generator: normalizing: true
Generator: topN: 50000
Generator: 0 records selected for fetching, exiting ...

Nutch が html を解析するために使用する正規表現パターンと関係があるのか​​ 、それとも問題を引き起こしているリダイレクトがあるのか​​ 、それともまったく別の何かがあるのか​​ どうかはわかりません。以下は、nutch 設定ファイルの一部です。

urlfilters は次のとおりです: http://pastebin.com/ZqeZUJa1

sysinfo: Windows 7 (64 ビット) Solr 3.6.2 Apache Nutch 1.7

誰かが以前にこの問題に遭遇したことがある場合、またはこれがなぜ起こっているのかを知っている可能性がある場合は、どんな助けも大歓迎です.

ありがとう

4

2 に答える 2

1

そのシード URL を試してみたところ、次のエラーが発生しました。

Denied by robots.txt: http://scambs.moderngov.co.uk/uuCoverPage.aspx?bcr=1

そのサイトの robots.txt ファイルを見ると、次のようになります。

# Disallow all webbot searching 
User-agent: *
Disallow: /

Nutch で特定のユーザー エージェントを設定し、ユーザー エージェントからのクロールを受け入れるように Web サイトを変更する必要があります。

Nutch で変更するプロパティは、conf/nutch-site.xml にあります。

<property>
  <name>http.agent.name</name>
  <value>nutch</value>
</property>
于 2013-10-20T21:35:54.107 に答える
0

これを試して

     <property> 
   <name>db.fetch.schedule.class</name> 
   <value>org.apache.nutch.crawl.AdaptiveFetchSchedule</value> 
  </property>

<property>
  <name>db.fetch.interval.default</name>
  <value>10</value>
  <description>The default number of seconds between re-fetches of a page (30 days).
  </description>
</property>
  <property>
  <name>db.fetch.interval.max</name>
          <!-- for now always re-fetch everything -->
  <value>100</value>
  <description>The maximum number of seconds between re-fetches of a page
  (less than one day). After this period every page in the db will be re-tried, no
   matter what is its status.
  </description>
</property>
于 2014-11-25T08:17:49.773 に答える