2017-09-19 14 views
0

一般的なクロールを使用してWebページを取得したいが、紛失している。一般的なクロール - WARCファイルの取得

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、例)/"、 "タイムスタンプ": "20170820000102"、 "MIME": "テキスト/ HTML"、 "ダイジェスト": "B2LTWWPUOYAH7UIPQ7ZUPQ4VMBSVC36A"、 "ファイル名":「crawl-データ/ CC-MAIN-2017-34 /セグメント/ 1502886105955.66/robotstxt/CC-MAIN-20170819235943-20170820015943-00613.warc.gz "、" mime-detected ":" text/html "、" status ":" 200 " "offset": "1109728"、 "length": "1166"、 "url": "http://www.example.com"}

これらのjson要素を使用してHTMLを取得する方法を正しい方向で指摘できますか?

助けてくれてありがとう!

答えて

0

$ offsetから($ offset + $ length-1)までのHTTP範囲要求を満たすためにJSON結果からファイル名、オフセット、および長さを取得します。ファイル名に接頭辞として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

+0

ありがとうございました。これは本当に役に立ちます。 – MAB

関連する問題