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

使用Python Requests爬取AngularJS页面缺失Controller数据的问题

排查方案:requests无法获取页面script数据的解决思路
  • 完整复刻浏览器请求头:打开Chrome调试工具的Network面板,刷新目标页面后找到对应请求,复制全部请求头(包含Cookie、Accept、Accept-Language、Referer等所有字段),将这些完整参数传入requests的headers中。很多网站会校验多请求头的组合,而非仅User-Agent。
  • 校验Cookie的影响:浏览器中可能存在会话或登录状态的Cookie,服务器会据此返回差异化内容。可从Chrome的Application面板复制当前页面的Cookie,添加到requests的cookies参数,或使用requests.Session()维持会话状态。
  • 模拟前置请求流程:部分网站要求先访问首页等前置页面建立会话后,再请求目标页面。可先用requests.get访问网站首页,再通过同一个Session对象请求基金页面。
  • 用curl做对比测试:使用curl命令带上完整请求头测试目标URL,若curl能获取到script块,说明requests的请求头仍有遗漏;若curl也无法获取,可能服务器存在更复杂的检测逻辑(但你禁用JS仍能拿到,大概率还是请求头问题)。
  • 对比请求细节差异:通过Chrome Network面板或抓包工具,对比浏览器与requests请求的所有细节:包括请求方法、头字段顺序(部分网站会校验)、编码格式、查询参数等,找出不一致的地方。
  • 备选:使用无头浏览器:若以上方法均无效,直接用Playwright或Selenium等无头浏览器工具,完全模拟浏览器的请求与渲染流程,直接提取页面中的script数据。这种方法虽资源消耗较高,但能绕过大部分服务器端的客户端检测。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 04:46:03