python - urllib.error.HTTPError:HTTP 错误 413:有效负载太大
问题描述
我正在the_url
使用以下代码在大型网站中抓取各种页面 ( ):
opener = urllib.request.build_opener()
url = opener.open(the_url)
contents_of_webpage = url.read()
url.close()
contents_of_webpage = contents_of_webpage.decode("utf-8")
这几乎适用于每个页面,但偶尔我会得到: urllib.error.HTTPError: HTTP Error 413: Payload Too Large
寻找解决方案我遇到了以下形式的答案:网络服务器可能会选择将此作为响应......好像没有什么可做的一样 - 但我所有的浏览器都可以毫无问题地阅读页面,大概是我的浏览器应该发出相同类型的请求。所以肯定存在某种解决方案......例如,您可以一次请求一个网页以避免大量有效负载吗?
解决方案
这在很大程度上取决于您请求的站点和 URL。为避免您的问题,大多数站点/API 在其端点上提供分页。尝试检查您请求的端点是否接受诸如?offset=<int>&limit=<int>
或 smth 之类的 GET 参数。
UPD:除此之外,urllib
在模拟浏览器行为方面并不是那么好。因此,您可以尝试使用requests
或设置User-Agent
浏览器的标头发出相同的请求。
推荐阅读
- python - 初学者python错误:错误的解释器:没有这样的文件或目录
- java - 如何在 Android 11 中提供写入存储权限?
- node.js - {NodeJS} 如何从 HTTP 请求存储 Token API(发布)
- django - NGINX 和 Django(服务器重启后无法加载 Django 应用程序)
- flutter - 使用 Navigator.pushReplacementNamed() 替换颤动页面后如何在屏幕中启用后退按钮?
- ruby-on-rails - 接收 DRb::DRbRemoteError: FATAL: "base/
" 在构建 Devise 固定装置时不是有效的数据目录 - flutter - 如何使用 url_launcher 打开已安装的应用程序,否则在浏览器中打开?
- python - Python - 通过 csv 文件搜索多个关键字并从 BING.com 结果中获取第一个 URL 并将其保存为 CSV
- javascript - 如何使用数据库中的数据更改页面的某些内容
- rust - 在向量之间使用时,如何解释大于和小于运算符(`<`、`>`)?