2017-09-19 4 views
0

일반적인 크롤링을 사용하여 웹 페이지를 검색하고 싶지만 길을 잃고 싶습니다.일반적인 크롤링 - 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 결과에서 파일 이름, 오프셋 및 길이를 가져옵니다. filename에 prefix로 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에이 Boto3를 사용하여 수행하거나 AWS-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