0

Nutchの特定のドメインのみをクロールしたい。それはこのFAQ linkapache nutchを使って外部リンクをクロールするのを防ぐ方法は?

問題に言われたように、このために私は真db.ignore.external.linksを設定し、シード・リストのリンクのみをクロールするNutchのスタートです。たとえば、 "nutch.apache.org"をseed.txtに入れると、同じURL(nutch.apache.org)のみが検索されます。

結果は、深さ200のクロールスクリプトを実行することで得られます。そして、1サイクルで終了し、以下のアウト・プットを生成します。

どうすればこの問題を解決できますか?

私はあなたが特定のドメインからのページだけを取得したいのApache Nutchのに1.11

Generator: starting at 2016-04-05 22:36:16 
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 

よろしく

答えて

2

を使用しています。

あなたは既にdb.ignore.external.linksを試しましたが、これはseek.txtのURL以外のものを制限しています。

あなたはnutch1 tutorialの例のようconf/regex-urlfilter.txtを試してみてください:

+^http://([a-z0-9]*\.)*your.specific.domain.org/ 
1

あなたは、 "クロール" スクリプトを使用していますか?もしあなたが1より大きいレベルを与えていることを確認してください。このようなものを実行すると、 "bin/crawl seedfoldername crawlDb http://solrIP:solrPort/solr 1"と表示されます。それは、seed.txtに記載されているURLのみをクロールします。

また、特定のドメインをクロールするにはregex-urlfiltee.txtファイルを使用できます。

+0

で次のプロパティを追加します。参照URLを編集すると、フィルタの結果は以前と同じになります。 –

+1

クロールスクリプトを実行している場合は、crawldbフォルダを削除してからもう一度実行してください。 – AVINASH

+0

また、シードURLページにクローラがクロールできる他のリンクがあることを確認してください – AVINASH

0

は、はい、私は200の深さでクロールスクリプトを使用していNutchの-site.xmlの

<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 is an effective way to limit the crawl to include only initially injected hosts, without creating complex URLFilters. </description> 
</property> 
関連する問題