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

如何使用Python爬取需登录网站并获取账户详情(不使用Selenium)

无Selenium实现目标网站登录与账户数据爬取

核心思路

绕过浏览器模拟,直接通过HTTP请求模拟登录流程,利用会话保持获取登录后的权限,再请求账户数据接口。以下是具体步骤:


1. 抓包分析登录流程

打开浏览器开发者工具(F12),切换到Network面板,勾选Preserve log,手动完成一次登录:

  • 定位登录触发的POST请求(路径通常包含login/auth等关键词),记录:
    • 请求URL(登录接口地址)
    • 请求头:重点保留User-Agent、Content-Type、Referer、X-CSRF-Token(若存在)
    • 请求体:确认参数格式(JSON/表单)及必填字段(用户名、密码、验证码、随机token等)
  • 查看登录成功后的响应,确认会话cookie或身份token(后续请求需携带)

2. 用Python构造登录请求

使用requests库的Session对象维持会话(自动保存cookie):

import requests
import re

# 初始化会话
session = requests.Session()
# 模拟真实浏览器请求头
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36",
    "Content-Type": "application/json",  # 按抓包结果调整,可能是application/x-www-form-urlencoded
    "Referer": "https://online.cspension.com.hk/hkpensionweb/#/login?source=corporateHK&vgnLocale=en_CA"
}

# 1. 先请求登录页面,提取CSRF token(若页面包含)
login_page = session.get("https://online.cspension.com.hk/hkpensionweb/#/login?source=corporateHK&vgnLocale=en_CA", headers=headers)
csrf_token = re.search(r'<meta name="csrf-token" content="(.*?)">', login_page.text).group(1) if "csrf-token" in login_page.text else ""

# 2. 构造登录参数
login_data = {
    "username": "你的用户名",
    "password": "你的密码",
    "csrfToken": csrf_token,  # 有则加,无则删
    # 补充抓包得到的其他必填参数,如source、验证码等
}

# 3. 发送登录请求
login_response = session.post("登录接口URL", headers=headers, json=login_data)  # 表单格式用data=login_data

# 验证登录状态
if login_response.status_code == 200 and "success" in login_response.text:
    print("登录成功")
else:
    print("登录失败,检查参数/请求头或是否有验证码")

3. 请求账户详情数据

登录成功后,用同一会话请求账户数据接口(抓包获取对应API):

# 请求账户详情,替换为实际接口URL
account_response = session.get("账户详情接口URL", headers=headers)

# 解析响应数据(通常为JSON格式)
account_data = account_response.json()
print(account_data)

关键注意事项

  • 反爬应对:添加随机延迟避免频繁请求,保持请求头与浏览器完全一致
  • 动态参数处理:若存在每次刷新页面都会变化的token,必须先请求登录页面提取后再构造登录请求
  • 验证码处理:若网站有验证码,需集成OCR工具(如Tesseract)识别;若为滑块/点选验证码,此方法会受限
  • 会话维护:部分网站会定期刷新会话token,若后续请求失败,需重新执行登录流程

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 04:50:33