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

能否向Selenium打开的WebDriver发送GET请求以爬取滚动页面?

问题:结合Selenium滚动无限页面后,如何用BeautifulSoup解析内容?

我需要爬取一个无限滚动页面的大量内容,目前用Selenium启动WebDriver打开页面,通过循环滚动让足够内容可见。但我想用BeautifulSoup解析页面信息,常规requests.get()只能获取初始页面内容,拿不到滚动后的内容。请问是否可以向已打开的WebDriver发送GET请求?

用户提供的代码:

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
import requests
from bs4 import BeautifulSoup
import time  # 原代码遗漏此导入,需补充

# 用WebDriver打开网站
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get(url)

# 滚动加载循环
scroll_start = 0
for i in range(100):
    scroll_end = scroll_start + 1080
    driver.execute_script(f'window.scrollTo({scroll_start}, {scroll_end})') 
    time.sleep(2)
    scroll_start = scroll_end

# 尝试用requests获取内容
response = requests.get(url)
soup = BeautifulSoup(response.content, 'lxml')

回答

不能直接向已打开的WebDriver发送requests.get()请求。requests发起的是独立的HTTP请求,和WebDriver的浏览器会话完全无关——它只会获取服务器返回的初始页面内容,和WebDriver中已经滚动加载后的页面没有任何关联。

正确的做法是从WebDriver中提取当前已渲染完成的页面源码,再交给BeautifulSoup解析,具体步骤如下:

  1. 用WebDriver完成滚动操作,确保目标内容全部加载;
  2. 调用driver.page_source获取当前页面的完整HTML源码;
  3. 将源码传入BeautifulSoup进行解析。

修正后的代码示例:

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from bs4 import BeautifulSoup
import time

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

# 滚动加载内容
scroll_start = 0
for i in range(100):
    scroll_end = scroll_start + 1080
    driver.execute_script(f'window.scrollTo({scroll_start}, {scroll_end})') 
    time.sleep(2)
    scroll_start = scroll_end

# 获取WebDriver当前页面的完整源码,交给BeautifulSoup解析
page_source = driver.page_source
soup = BeautifulSoup(page_source, 'lxml')

# 示例:提取目标内容
# target_items = soup.find_all('div', class_='your-target-class')

# 操作完成后关闭浏览器,释放资源
driver.quit()

额外提示:

  • driver.page_source会返回浏览器当前渲染的所有HTML内容,包括滚动加载的动态内容;
  • 如果页面是滚动到底部才触发AJAX加载,可以优化滚动逻辑(比如循环滚动至页面底部并等待加载),而非固定次数滚动;
  • 务必在操作结束后调用driver.quit()关闭浏览器,避免残留进程占用资源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 18:45:31