【问题标题】:Common crawl - getting WARC file常见爬取——获取WARC文件
【发布时间】:2017-09-19 18:41:21
【问题描述】:

我想使用普通抓取来检索网页,但我迷路了。

我想获取 www.example.com 的 warc 文件。我看到这个链接 (http://index.commoncrawl.org/CC-MAIN-2017-34-index?url=https%3A%2F%2Fwww.example.com&output=json) 产生以下 json。

{"urlkey": "com,example)/", "timestamp": "20170820000102", "mime": "text/html", "digest": "B2LTWWPUOYAH7UIPQ7ZUPQ4VMBSVC36A", "filename": "crawl-data /CC-MAIN-2017-34/segments/1502886105955.66/robotstxt/CC-MAIN-20170819235943-20170820015943-00613.warc.gz”,“mime-detected”:“text/html”,“状态”:“200”, “偏移量”:“1109728”,“长度”:“1166”,“url”:“http://www.example.com”}

谁能指出我如何使用这些 json 元素来检索 HTML 的正确方向。

感谢您帮助菜鸟!

【问题讨论】:

    标签: common-crawl


    【解决方案1】:

    从 JSON 结果中获取文件名、偏移量和长度,以填充从 $offset 到 ($offset+$length-1) 的 HTTP 范围请求。将https://commoncrawl.s3.amazonaws.com/作为前缀添加到文件名并使用gzip解压缩结果,例如

    curl -s -r1109728-$((1109728+1166-1)) \
       "https://commoncrawl.s3.amazonaws.com/crawl-data/CC-MAIN-2017-34/segments/1502886105955.66/robotstxt/CC-MAIN-20170819235943-20170820015943-00613.warc.gz" \
    | gzip -dc
    

    当然,在 AWS 上,这可以使用 Boto3AWS-CLI 来完成:

    aws --no-sign-request s3api get-object \
     --bucket commoncrawl \
     --key crawl-data/CC-MAIN-2017-34/segments/1502886105955.66/robotstxt/CC-MAIN-20170819235943-20170820015943-00613.warc.gz \
     --range bytes=1109728-$((1109728+1166-1)) response.gz
    

    如果只是少数文档,修改文档没关系,可以直接使用索引服务器:http://index.commoncrawl.org/CC-MAIN-2017-34/http://www.example.com

    【讨论】:

    • 谢谢。这真的很有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-01
    相关资源
    最近更新 更多