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

Python+Selenium+Mongo爬取ZVG网站遇链接失效,求模拟请求方案

解决ZVG Portal搜索返回Error的模拟请求方案

可以通过模拟HTTP请求直接与后端交互来尝试获取目标页面,以下是具体思路和步骤:

  • 先分析真实请求细节
    打开浏览器开发者工具(F12)的Network标签,手动完成一次搜索操作(哪怕当前返回Error,也可查看请求参数):

    • 记录请求的方法(POST/GET)、目标URL、请求Headers(重点关注Cookie、User-Agent、Referer、Content-Type)
    • 提取请求中的所有参数,包括下拉菜单对应的value值(注意是HTML选项的value属性,不是显示文本),以及页面中可能存在的隐藏字段(比如CSRF令牌,通常是csrf_token或类似名称的input)
  • 构造模拟请求
    用requests库实现会话管理和请求发送:

    1. 初始化requests.Session(),先请求初始搜索页面,获取并保存Cookie和CSRF令牌
    2. 构造搜索参数字典,确保所有必填字段的参数值与浏览器提交的一致
    3. 发送请求时带上完整的Headers(模拟浏览器环境),将参数以对应格式(如form-data或x-www-form-urlencoded)提交
  • 注意事项

    • 确保参数合法性:下拉选项必须使用页面提供的合法value值,不能自定义
    • 维持会话:用Session对象自动管理Cookie,避免因Cookie过期导致的验证失败
    • 反爬规避:设置真实的User-Agent,必要时添加合理的请求间隔,避免触发IP限制
    • 响应处理:如果后端返回HTML,用BeautifulSoup解析提取目标链接;如果是JSON格式,直接解析数据即可
  • 为什么模拟请求可能解决问题
    Selenium依赖前端渲染,可能因JS事件触发不全、页面渲染异常导致请求参数缺失或错误;而直接模拟后端请求可以绕过前端环节,直接传递符合后端要求的参数,避开前端渲染引发的异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 17:42:12