嗨,我正在开发一个有趣的项目,使用常见的爬网数据我有一个从这里开始的最新爬网 warc 文件路径的子集
所以基本上我有一个像https://commoncrawl.s3.amazonaws.com/crawl-data/CC-MAIN-2020-45/segments/1603107863364.0/warc/CC-MAIN-20201019145901-20201019175901-00000.warc.gz这样的网址(warc 路径中的第一个 url),我在请求中流式传输,如下所示:
s = requests.Session()
resp = s.get(url, headers=headers, stream=True)
print(resp.status_code)
for line in stream_gzip_decompress(resp):
print(line.decode('utf-8'))
def stream_gzip_decompress(stream):
dec = zlib.decompressobj( 32+ zlib.MAX_WBITS) # offset 32 to skip the header
for chunk in stream:
rv = dec.decompress(chunk)
if rv:
yield rv
从Python解压缩字节流的stream_gzip_decompress ?
前三个块似乎可以很好地解压并打印出来,然后脚本就永远挂起(我只等了大约 8 分钟。它似乎仍在运行这些块,但被抓住了,if rv:
所以不会产生任何东西,但似乎仍然以字节为单位。