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

如何解决Requests+BeautifulSoup爬取需登录页面的登录状态问题?

问题原因

Selenium控制的浏览器和requests是完全独立的HTTP会话,浏览器登录后生成的登录Cookie只保存在浏览器的会话里,requests发起请求时没有携带这些Cookie,服务器会判定你未登录,所以返回登录页内容。

解决方案

有两种可行的解决办法:

方法一:从Selenium提取Cookie给requests用

登录成功后,把浏览器里的Cookie提取出来,放到requests的会话中,这样requests就能带着登录凭证请求页面了:

# 登录成功后执行
cookies = browser.get_cookies()

# 初始化requests会话,并导入Cookie
session = requests.Session()
for cookie in cookies:
    session.cookies.set(cookie['name'], cookie['value'])

# 用带Cookie的会话请求页面
current_page = browser.current_url
r = session.get(current_page, headers=headers)
soup = bs(r.text, "html.parser")

方法二:直接用Selenium获取页面源码

既然已经通过Selenium成功进入目标页面,没必要再用requests绕一圈,直接提取浏览器当前的页面源码给BeautifulSoup解析:

# 登录成功后直接获取页面源码
soup = bs(browser.page_source, "html.parser")

这种方法更简单,还能避免Cookie同步可能出现的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 14:22:36