java - HTTP 获取 URL,状态 = 429
问题描述
Org.jsoup.HttpStatusException:获取 URL 的 HTTP 错误。状态 = 429 显示我一次解析 900 个 url 时......并且消息会停留一段时间,比如 1 小时或更长时间......这个问题有什么解决方案吗?或者在haening之前检测错误的方法?
解决方案
TL;博士
您已受到速率限制。
这个问题有什么解决办法吗?
阅读您正在抓取的网站的条款和条件以了解:
- 是否允许刮擦
- 如果允许,什么请求率是可以接受的。
如果 1.1 为“否”,请停止尝试抓取该站点。
否则,请实施您的代码以保持在规定的速率限制之下。例如,当您的爬虫达到允许的请求限制时,拥有它
sleep
,然后在下一个计量时间段内继续发送请求。
还是一种在错误发生之前检测到错误的方法?
不会。除了 429 响应之外,该站点很可能不会给您任何指示。(但您可以查看他们的文档....)
推荐阅读
- ios - 将银行卡添加到 Apple Wallet
- php - 无法在 Woocommerce 中将产品添加到购物车
- .htaccess - .htaccess - 更改网址 - RewriteRule 不起作用
- sql - WHERE 子句中的 SQL 日期和时间
- python - 如何解决 pygame.error: 无法打开游戏\图像\person1.png
- mysql - 使用空值对 3 个日期中最早的一个进行排序
- java - ExecutionStrategy 构造方法上的异常 java.lang.NoSuchMethodError
- django - Django - 帮助在嵌套 for 循环中显示内容
- reactjs - 如何在 React Native 中列出传入的数据
- c# - 使用 RecognizeMode.Multiple 时如何停止语音识别引擎