You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

requests_cache+BeautifulSoup爬取币安公告存在3-5分钟延迟问题咨询

问题成因分析
  • 最核心的原因是你使用了requests_cache.CachedSession发起请求,默认会遵循目标站点返回的缓存头规则:币安公告页面的响应头大概率设置了3-5分钟的缓存有效期(Cache-Control/Expires字段),在缓存有效期内你的请求不会真的访问币安服务器,直接读取本地缓存的旧页面内容,因此无法拿到最新公告。而你的个人站点没有配置这类缓存规则,所以相同代码运行无延迟。
  • 币安配置了多层CDN缓存节点,新公告发布后需要等待CDN节点逐批刷新内容,你请求的CDN节点恰好存在3-5分钟的更新延迟。你的个人站点没有接入CDN或者CDN缓存时间配置极短,因此感知不到延迟。
  • 币安的反爬策略限制:对高频请求的爬虫IP返回旧版本的静态页面,避免服务器被爬虫打满,而你访问个人站点无反爬限制,所以不会出现该问题。
  • 币安公告列表的静态页面更新存在滞后:最新公告优先通过前端接口推送给访问页面的真实用户,静态HTML更新会晚于接口数据更新,你直接爬取静态HTML天然就存在延迟。
修复建议
  • 优先替换CachedSession为普通requests.Session,如果一定要用缓存,手动设置缓存有效期远低于你的爬取间隔,示例代码如下:
# 强制缓存1秒过期,避免读到旧内容
session = requests_cache.CachedSession('demo_cache', expire_after=1)
# 或者每次请求强制跳过缓存
pageForFirstCheck = session.get(siteUrl, refresh=True)
  • 改为抓币安公告的后台接口而非静态HTML页面,接口数据的更新速度远快于静态页面,延迟会大幅降低。
  • 增加请求头模拟真实浏览器访问,添加User-Agent、Cookie等字段,避免被反爬策略返回旧内容。

内容的提问来源于stack exchange,提问作者Liutzik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 19:36:07