首页 > 解决方案 > 请求无法在内容较大的 url 上完成

问题描述

当 url 命中的内容有 50~ MB 被渲染时,我无法修复 requests.get 问题。浏览器总共需要 4 分钟〜来获取/显示完整的响应,而 requests.get() 会一直运行下去。

response = requests.get('http://<url-that-renders-contents-as-raw-data>', headers=<headers>, cookies=<cookies>, verify=False, stream=True)

由于一些隐私问题,无法共享实际的 URL / headers/cookies 等其他参数,但是我们如何获取响应。内容,可能是块,当作为 get 请求被点击时,获取原始数据/日志/行的价值MB?

编辑:实际上,它是一个 SimpleHTTPServer 或 SimpleAuthServer,我需要通过 http 从中获取一个庞大的文件。

标签: pythonpython-requestsurllib2

解决方案


您实际上是如何在这里获得响应内容的?由于您已设置stream=True,它只会下载标题,然后等待您使用 获取实际数据Response.iter_lines,或在输出流Response.iter_content上执行直接 IO 。Response.raw

没有更多信息很难提供帮助,但是由于所有这些都应该被赋予“界限”,您可以查看您的阅读进度,看看它是否完全锁定。或者,如果您甚至没有到达那部分(此时您可能希望启用 http.client 和 urllib3 的低级日志记录,它非常嘈杂,但会提供更多洞察力)


推荐阅读