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

使用Python requests登录无Client ID与Secret的OpenID网站是否可行?

可行的两种验证绕过方案

方案1:复用浏览器手动登录后的凭证(最简单,适合临时抓取需求)

OIDC登录完成后,服务端会给浏览器下发会话类凭证(通常存储在Cookie中,常见键名包括sessionid、access_token等),直接复用该凭证即可跳过验证流程,操作步骤如下:

  • 在本地浏览器手动完成目标网站的全流程登录,确保已经可以正常访问需要权限的页面
  • 打开浏览器开发者工具(F12),切换到「网络」标签,刷新当前权限页面,找到对应页面的请求记录,复制请求头中Cookie的完整值
  • 将复制的Cookie填入Python requests请求头即可正常请求资源,示例代码如下:
import requests

headers = {
    "User-Agent": "替换为你本地浏览器的User-Agent值",
    "Cookie": "替换为刚才复制的完整Cookie值"
}

# 直接请求需要登录权限的页面/接口
resp = requests.get("目标资源URL", headers=headers)
print(resp.text)

注意:Cookie存在有效期,失效后重新在浏览器登录复制新的Cookie即可。

方案2:自动化浏览器模拟登录(适合长期批量抓取)

直接用模拟浏览器工具走完整的用户登录流程,自动保留会话状态,无需申请Client ID/Client Secret,也不需要手动复制Cookie,推荐用Playwright实现,操作步骤如下:

  • 先安装依赖:执行pip install playwright,再执行playwright install chromium安装内置浏览器
  • 示例代码如下:
from playwright.sync_api import sync_playwright
from bs4 import BeautifulSoup

with sync_playwright() as p:
    # 调试阶段可将headless设为False,方便查看登录过程、手动处理验证码
    browser = p.chromium.launch(headless=False)
    page = browser.new_page(user_agent="替换为常用浏览器的User-Agent值,降低反爬拦截概率")
    
    # 跳转至需要权限的页面,会自动触发OIDC登录跳转
    page.goto("你需要抓取的目标页面URL")
    
    # 定位账号、密码输入框填入凭证,点击登录(元素选择器可在浏览器开发者工具中复制)
    page.fill('input[name="username"]', "你的账号")
    page.fill('input[name="password"]', "你的密码")
    page.click('button[type="submit"]')
    
    # 等待登录完成、页面资源加载完毕
    page.wait_for_load_state("networkidle")
    
    # 获取页面源码传入bs4解析即可
    page_content = page.content()
    soup = BeautifulSoup(page_content, "html.parser")
    print(soup.title.text)
    
    browser.close()

注意:如果登录环节有人机验证、短信验证码等流程,可以临时关闭无头模式手动处理,也可接入对应的验证码识别服务实现全自动化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:18:05