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

Python下Selenium搭配browsermobproxy生成HAR无推文回复正文问题

问题根因

你遇到的问题核心是browsermob-proxy 2.1.4原生不支持Brotli压缩格式解压。
推特现在所有返回推文、评论数据的GraphQL接口,默认会优先用Brotli(响应头content-encoding: br)压缩返回内容,老版本browsermob-proxy没法解压这种格式的响应体,自然捕获不到文本内容;而头像、图片、GIF这类静态资源要么不压缩,要么用gzip压缩,是browsermob-proxy支持的格式,所以能正常捕获。你手动在开发者工具导出HAR时,浏览器已经提前完成了解压操作,所以能看到完整的评论文本。

排查解决步骤
  • 先确认问题匹配度
    打开你已捕获的HAR文件,查找路径包含TweetDetail、ConversationTimeline的接口请求,查看其响应头的content-encoding字段,如果值为br,即可确认是上述压缩格式不兼容问题。
  • 最快修复方案(无需更换依赖)
    在ChromeOptions配置中新增启动参数,强制浏览器请求时只接受gzip、deflate压缩格式,不走Brotli:
    co.add_argument('--accept-encoding=gzip, deflate')
    
    加完这行后重新运行流程,browsermob-proxy就能正常解压接口响应,捕获到评论文本内容。
  • 长期方案(保留Brotli支持)
    如果你需要保留Brotli压缩的性能优势,可以替换本地的browsermob-proxy 2.1.4为社区维护的、集成了Brotli解码能力的更新版本,不需要修改现有业务代码即可正常捕获内容。
  • 补全流程细节避免漏数
    你现在的滚动逻辑没有等待时间,每次执行滚动后加2~3秒的强制等待,等分页加载评论的接口请求完成后再执行下一步操作,避免漏抓分页的评论数据;测试阶段不要用无头模式启动浏览器,无头模式下推特的接口返回逻辑可能有差异,容易出现内容缺失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 05:18:21