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

使用Python requests爬取PHP Session站点时Cookie失效如何解决

问题原因与解决方案

问题产生原因

  • 请求方法使用错误:带查询参数的搜索请求属于GET场景,你误用POST请求提交,服务端返回的会话Cookie本身就不稳定。
  • 分页请求未携带完整搜索参数:你从第二页开始的请求只带了start分页参数,没有带上psearch、Submit、psearchtype这些搜索关联参数,服务端无法将分页请求和之前的「sites」搜索上下文绑定,判定会话失效后就会清空返回的Cookie,返回无搜索条件的默认页面。
  • Cookie管理逻辑错误:你每次请求都用新响应的Cookie覆盖原有有效Cookie,第二页响应已经返回了部分失效的Cookie,到第三页直接覆盖为空,自然无法继续访问关联搜索结果的分页。

解决方法

按以下规则修正代码即可正常爬取所有相关分页:

  1. 统一使用GET请求,匹配这类查询页面的接口设计
  2. 所有分页请求都携带完整的搜索参数,不要只传分页参数
  3. 使用requests.Session()自动管理Cookie,不需要手动提取、传递、更新Cookie,避免手动操作出错

修正后的代码如下:

import requests

# 初始化Session自动管理Cookie
session = requests.Session()
# 基础搜索参数,所有分页都要携带
base_params = {
    "psearch": "sites",
    "Submit": "GO",
    "psearchtype": ""
}

# 爬取1-4页
for i in range(1, 5):
    # 计算分页start值,第一页是1,第二页21,以此类推
    base_params["start"] = 1 + 20*(i-1)
    url = "https://db.aa419.org/fakebankslist.php"
    # 用GET请求,参数自动拼接在URL后,Session自动带Cookie
    response = session.get(url, params=base_params)
    # 这里补充你的页面解析逻辑即可
    print(f"第{i}页响应长度:{len(response.text)}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 16:39:02