2017-11-02 8 views
0

私はnutchで新しいです。私はインターネットから多くのウェブサイトをクロールしました。私はセグメントのHTMLコンテンツを取得したい。その後、nutchからhtmlファイルをダンプする方法

./nutch mergesegs crawl/merged crawl/segments/* 

と:今

./nutch readseg -dump crawl/merged/* dumpedContent 

それゆえ、私は以下のコマンドでダンプされました。 dumpedContentに2つのファイルがあります。ダンプと.dump.crc

ダンプのサイズが大きすぎます(82GB)。

各Webページを1つのファイルにダンプする方法はありますか?小さなファイルをダンプする方法は?

答えて

0

セグメントを最初に(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のファイル関係にすることが可能であるかどうかわからないコンテンツを別の形式で出力することができます。

+0

あなたの答えに感謝します。私はSolrのこのクロールされたデータを './nutch solrindex http:// localhost:8983/solr/crawl/crawldb-linkdb crawl/linkdb crawl/segments/*'に索引付けしました。 htmlファイルはどこですか?私は理由を解析するためにすべてのhtmlファイルが必要です。 htmlファイルの抽出にお役立てください。 – Rahman

+0

あなたが使用しているNutchのバージョンを指定しておらず、 'solrindex'は推奨されていません。代わりに' ./bin/nutch index'を使うべきです。 '-addBinaryContent'フラグを' index'コマンドに指定する必要があります。 './bin/nutch index'の出力を見て、利用可能なオプションを確認してください。 –

+0

私は 'nutch 1.4'を使用しています。このコマンドでは、すべてのデータが正常に索引付けされています。今私はsolrで検索できます。しかし、私はちょうどhtmlファイルが必要です。私は '-addBinaryContent'フラグについて何も知らない。 htmlファイルを抽出するコマンドを教えてください。 – Rahman

0

Nutch SegmentReaderは、すべてのHTMLコンテンツを1つのファイルにダンプするのに適しています。これは一般に、開始URL(およびそのインリンクとアウトリンク)からHTMLコンテンツを保存することにつながります。

ただし、別々に解析して保存する必要がある場合は、writing pluginsを調べるとよいでしょう。あなたは、解析されるものに基づいてどこに何を保存するかを定義することができます。最近私はこれを試してみました。ディレクトリフォルダーに別々のHTMLページを格納するのが効率的です。お役に立てれば。

関連する問題