如何从nutch转储html文件
我是新手。我从网上爬了很多网站。我想得到段的html内容。因此,我通过follow命令转储:如何从nutch转储html文件,nutch,dump,Nutch,Dump,我是新手。我从网上爬了很多网站。我想得到段的html内容。因此,我通过follow命令转储: ./nutch mergesegs crawl/merged crawl/segments/* 然后: ./nutch readseg -dump crawl/merged/* dumpedContent 现在。dumpedContent中有两个文件:dump和.dump.crc 转储的大小太大(82GB) 如何将每个原始网页转储到一个文件中?或者如何在小文件中转储?您得到的是一个大文件,因为您首先
./nutch mergesegs crawl/merged crawl/segments/*
然后:
./nutch readseg -dump crawl/merged/* dumpedContent
现在。dumpedContent中有两个文件:dump和.dump.crc
转储的大小太大(82GB)
如何将每个原始网页转储到一个文件中?或者如何在小文件中转储?您得到的是一个大文件,因为您首先将段与(
mergesgs
)合并。您可以尝试将每个段转储到它自己的文件中
目前,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文件的关系 Nutch SegmentReader是将所有HTML内容转储到一个文件中的好方法。这通常会导致存储来自起始URL的HTML内容(以及它们的内链接和外链接)
然而,如果您需要对它们进行单独的解析和存储,那么您可能需要研究它们。您可以根据解析的内容定义存储位置和内容。我最近尝试过这个方法,当涉及到在目录文件夹中存储单独的HTML页面时,它是有效的。希望这有帮助。谢谢你的回答。我在Solr中通过:
/nutch solrindex为这个爬网数据编制了索引http://localhost:8983/solr/ 爬网/crawdb-linkdb爬网/linkdb爬网/segments/*
。html文件在哪里?我需要所有html文件来分析原因。请帮助提取html文件。您尚未指定正在使用的Nutch版本,solrindex
已被弃用,您应该改用/bin/Nutch index
。您需要为index
命令指定-addBinaryContent
标志。查看/bin/nutch index
的输出以检查可用选项。我正在使用nutch 1.4
,通过此命令,所有数据都已成功索引。现在我可以用solr搜索了。但我只需要html文件。我对-addBinaryContent
标志一无所知。你能给我一个命令来提取html文件吗?Nutch1.4是一个非常旧的版本,你应该升级到1.14(trunk/master)。该命令与您发布的命令相同:/nutch solrindexhttp://localhost:8983/solr/ crawl/crawdb-linkdb crawl/linkdb-addBinaryContent
同样,你不会得到HTML文件,在Solr中你会有一个包含原始内容的字段。我知道这是一个非常旧的版本。但我已经用这个版本爬网了:(.我运行您的命令:/nutch solrindexhttp://localhost:8983/solr/ crawl/crawdb-linkdb crawl/linkdb crawl/segments/*-addBinaryContent
。但它会引发以下错误:输入路径不存在:crawl/-addBinaryContent/parse_text
。我认为Nutch 1.4不支持此标志!我说得对吗?拥有原始内容会很棒。