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

如何在已登录的Chrome浏览器中抓取需登录网页的数据?

解决登录后网页的数据抓取问题

你的核心需求是抓取需要登录才能访问的网页内容,现有代码存在几个关键问题,以下是问题分析和解决方案:

原代码的问题

  1. requests.get('webpage.com')完全无效:这个请求没有携带浏览器的登录Cookie,返回的是未登录状态的页面,而且代码里也没用到这个source变量
  2. Selenium启动的是全新Chrome实例:默认没有任何登录状态,直接获取page_source只能拿到空白或未登录的页面内容
  3. 没有让浏览器导航到目标网页:直接取page_source自然拿不到需要的元素

方案一:复用已登录的Chrome浏览器(推荐)

这种方法可以直接使用你已经登录过目标网站的Chrome窗口,步骤如下:

  1. 关闭所有Chrome窗口
  2. 打开命令提示符/终端,运行以下命令启动Chrome(指定远程调试端口和用户数据目录):
    • Windows:
      chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\ChromeProfile"
      
    • macOS:
      /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 --user-data-dir="/Users/你的用户名/Library/Application Support/Google/Chrome/Profile1"
      
  3. 在这个新启动的Chrome里登录目标网站,保持窗口打开
  4. 使用以下代码连接到这个已登录的Chrome实例:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from bs4 import BeautifulSoup as bs

# 配置Chrome选项,连接到已启动的调试端口
options = Options()
options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")

# 初始化driver,复用已打开的Chrome
driver = webdriver.Chrome(options=options)

# 导航到目标网页(如果当前浏览器没在这个页面)
driver.get('webpage.com')

# 获取登录后的页面源码
content = driver.page_source
soup = bs(content, 'lxml')

# 查找指定元素
price = soup.find('span', attrs={'id':'calculatedMinRate'})
if price:
    print(price.text)
else:
    print("未找到目标元素")

# 可选:关闭driver不会关掉原浏览器窗口,仅断开连接
# driver.quit()

方案二:手动导入登录Cookie

如果不想复用浏览器进程,可以手动从已登录的Chrome中导出Cookie,再添加到Selenium的浏览器实例中:

  1. 在Chrome中登录目标网站,按F12打开开发者工具,进入Application -> Cookies,复制关键Cookie(如session_id、auth_token等)
  2. 使用以下代码:
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from bs4 import BeautifulSoup as bs

driver = webdriver.Chrome(ChromeDriverManager().install())

# 先访问目标网站域名,让Cookie绑定到该域名
driver.get('webpage.com')

# 添加实际的登录Cookie,替换成你复制的键值对和域名
driver.add_cookie({'name': 'session_id', 'value': '你的session_id值', 'domain': 'webpage.com'})
driver.add_cookie({'name': 'auth_token', 'value': '你的auth_token值', 'domain': 'webpage.com'})

# 刷新页面使Cookie生效
driver.refresh()

# 获取页面源码并解析
content = driver.page_source
soup = bs(content, 'lxml')

price = soup.find('span', attrs={'id':'calculatedMinRate'})
if price:
    print(price.text)
else:
    print("未找到目标元素")

driver.quit()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 01:31:16