python - 请求无法在内容较大的 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 从中获取一个庞大的文件。
解决方案
您实际上是如何在这里获得响应内容的?由于您已设置stream=True
,它只会下载标题,然后等待您使用 获取实际数据Response.iter_lines
,或在输出流Response.iter_content
上执行直接 IO 。Response.raw
没有更多信息很难提供帮助,但是由于所有这些都应该被赋予“界限”,您可以查看您的阅读进度,看看它是否完全锁定。或者,如果您甚至没有到达那部分(此时您可能希望启用 http.client 和 urllib3 的低级日志记录,它非常嘈杂,但会提供更多洞察力)
推荐阅读
- mysql - 带有原始数据库查询的 Laravel 8 收集过滤器
- javascript - 将 2d json(?) 数组转换为 pandas 数据框
- html - 如何强制 img 元素采用其父元素的宽度和高度?
- javascript - 如何仅在用户在 React.js 中查看时播放短视频
- html - Bootstrap 5卡平铺位置添加冲突
- github-actions - 在 Github 手动操作中,无法获取所选分支
- azure-ad-b2c - Azure B2C - 更改登录 - 令牌返回旧电子邮件地址
- java - Kotlin 任何类型到 Java 对象类型
- python - 使用 dict.update 覆盖键本身的字符串和键的值
- spring-boot - 如何使用 spring boot 和 mockito 对控制器方法进行单元测试