세그먼트를 먼저 (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을 쿼리 할 수 있다는 것입니다. 따라서 Solr/ES에서 원하는 형식/파일로 데이터를 추출 할 수 있습니다.
bin/nutch commoncrawldump
기능을 사용하면 다른 형식으로 콘텐츠를 출력 할 수 있습니다. 이제 1 URL을 1 파일 관계로 할 수 있는지 여부는 확실하지 않습니다.
답변 해 주셔서 감사합니다. Solr에서이 크롤링 된 데이터의 색인을 생성했습니다. './nutch solrindex http : // localhost : 8983/solr/crawl/crawldb -linkdb 크롤링/linkdb 크롤링/세그먼트/*' html 파일은 어디에 있습니까? 나는 이유를 파싱하기 위해 모든 html 파일을 필요로한다. html 파일을 추출하는 데 도움주세요. – Rahman
사용중인 Nutch 버전을 지정하지 않았고'solrindex'는 더 이상 사용되지 않습니다. 대신'./bin/nutch index '를 사용해야합니다. '-addBinaryContent' 플래그를'index' 명령에 지정해야합니다. './bin/nutch index'의 출력을보고 사용 가능한 옵션을 확인하십시오. –
나는'nutch 1.4'를 사용하고 있는데,이 명령으로 모든 데이터가 성공적으로 색인되었다. 이제 솔로로 검색 할 수 있습니다. 하지만 난 그냥 HTML 파일이 필요합니다. 나는'-addBinaryContent' 플래그에 대해 아무것도 모릅니다. html 파일을 추출하라는 명령을 내게 주시겠습니까? – Rahman