セグメントを最初に(mergesegs
)にマージしているので、個々のセグメントをそれ自身のファイルにダンプする可能性があるため、大きなファイルが作成されています。
現時点では、SegmentReader
クラスでは、個々のURLを区切ったファイルに分割することはサポートされておらず、サポートしているかどうかはわかりません。本当に大きなクロールでは、これは確実に問題になるでしょう。いずれにせよ、-dump
オプションではクロールされたURLには常にメタデータが添付されるため、HTMLコンテンツだけでなくメタデータも表示されます。例:
Recno:: 0
URL:: http://example.org
CrawlDatum::
Version: 7
Status: 33 (fetch_success)
Fetch time: Wed Oct 25 16:32:14 CEST 2017
Modified time: Thu Jan 01 01:00:00 CET 1970
Retries since fetch: 0
Retry interval: 2592000 seconds (30 days)
Score: 0.0
Signature: null
Metadata:
_ngt_=1508941926882
_repr_=http://example.org
_pst_=success(1), lastModified=0
_rs_=478
Content-Type=text/html
nutch.protocol.code=200
Content::
Version: -1
url: http://example.org
base: http://example.org
contentType: text/html
metadata: X-Cache=HIT Connection=close Date=Wed, 25 Oct 2017 14:30:53 GMT nutch.crawl.score=0.0 nutch.fetch.time=1508941934366 Accept-Ranges=bytes nutch.segment.name=20171025163209 Cache-Control=max-age=600 Content-Encoding=gzip Vary=Accept-Encoding,Cookie Expires=Wed, 25 Oct 2017 14:40:53 GMT Content-Length=20133 X-Cache-Hits=1 _fst_=33 Age=78 Content-Type=text/html; charset=UTF-8
Content:
...
生のHTMLを取得するには、このファイルを処理する必要があります。
その他のオプションは、-addBinaryContent
フラグを使用してコンテンツをSolr/ESに索引付けすることです。このページの生のコンテンツはSolr/ESに格納されます。ここでの利点は、特定のURLを照会できることです。ソル/ ESから任意のフォーマット/ファイルにデータを抽出することができます。
もう1つのオプションは、bin/nutch commoncrawldump
機能を使用しています.1つのURLを1のファイル関係にすることが可能であるかどうかわからないコンテンツを別の形式で出力することができます。
あなたの答えに感謝します。私はSolrのこのクロールされたデータを './nutch solrindex http:// localhost:8983/solr/crawl/crawldb-linkdb crawl/linkdb crawl/segments/*'に索引付けしました。 htmlファイルはどこですか?私は理由を解析するためにすべてのhtmlファイルが必要です。 htmlファイルの抽出にお役立てください。 – Rahman
あなたが使用しているNutchのバージョンを指定しておらず、 'solrindex'は推奨されていません。代わりに' ./bin/nutch index'を使うべきです。 '-addBinaryContent'フラグを' index'コマンドに指定する必要があります。 './bin/nutch index'の出力を見て、利用可能なオプションを確認してください。 –
私は 'nutch 1.4'を使用しています。このコマンドでは、すべてのデータが正常に索引付けされています。今私はsolrで検索できます。しかし、私はちょうどhtmlファイルが必要です。私は '-addBinaryContent'フラグについて何も知らない。 htmlファイルを抽出するコマンドを教えてください。 – Rahman