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

Scrapy爬取银行网站时登录后立即重定向至登出页面问题求助

解决Scrapy登录银行网站后立即登出的问题

我之前爬取金融类网站时也碰到过一模一样的情况——登录请求返回200,但紧接着就被踢回登录页,根本拿不到数据。结合你的日志和这类网站的特性,大概率是会话维持或反爬验证没处理到位,给你几个排查方向:

1. 确保Cookie被正确传递和持久化

银行网站几乎全靠Cookie维持登录会话,Scrapy默认虽然启用Cookie,但有时候会因为请求构造问题导致Cookie没跟上。

  • 先在settings.py里开启Cookie调试,方便排查:
    COOKIES_ENABLED = True
    COOKIES_DEBUG = True
    
  • 登录请求尽量用FormRequest.from_response,它会自动继承之前请求的Cookie,还能帮你提取表单里隐藏的字段(比如CSRF Token),比手动写FormRequest靠谱得多:
    def parse(self, response):
        # 先访问登录页,获取必要的Cookie和表单字段
        return scrapy.Request(url='https://www.bank.org/signin-page.html', callback=self.parse_login)
    
    def parse_login(self, response):
        # 用from_response构造登录请求
        return scrapy.FormRequest.from_response(
            response,
            formdata={
                'username': '你的账号',
                'password': '你的密码'
                # 如果有其他必填字段(比如验证码,不过你没提,暂时忽略)
            },
            callback=self.parse_after_login
        )
    
    def parse_after_login(self, response):
        # 这里检查是否登录成功,比如看页面是否包含用户名
        if '欢迎回来' in response.text:
            # 登录成功,开始爬取数据
            yield scrapy.Request(url='https://www.bank.org/your-target-page', callback=self.parse_data)
        else:
            # 登录失败,打印响应内容排查
            print('登录失败,响应内容:', response.text)
    

2. 检查CSRF Token是否正确携带

很多银行网站的登录表单里会有隐藏的CSRF Token字段,如果你手动构造POST请求没带上它,就算密码正确,服务器也会拒绝维持会话。用from_response的话,它会自动提取表单里的Token并加入请求数据,这一步基本能避免这个问题。

3. 模拟真实浏览器的User-Agent

默认的Scrapy User-Agent太扎眼,很容易被网站的反爬机制识别并强制登出。在settings.py里换成一个真实浏览器的UA:

USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36'

4. 模拟真实用户的请求节奏

银行网站对异常请求很敏感,如果登录后立刻发起大量请求,或者请求间隔太短,会被判定为机器人并强制登出。可以在settings.py里设置合理的下载延迟:

DOWNLOAD_DELAY = 2  # 每次请求间隔2秒

另外,登录成功后先访问一下网站的主页,再逐步爬取目标数据,尽量贴合真实用户的操作路径。

补充排查建议

你提供的日志只显示了登录POST请求返回200,建议把登录后的请求日志也贴出来——如果后续请求返回302重定向到登录页,那基本就是会话丢失;如果返回200但内容还是登录页,那可能是反爬机制直接拦截了请求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:17:40