> 技术文档 > 如何使用 Selenium + BeautifulSoup 抓取动态渲染页面(以知乎为例)_selenium+beautifulsoup

如何使用 Selenium + BeautifulSoup 抓取动态渲染页面(以知乎为例)_selenium+beautifulsoup

传统爬虫工具如requests只能抓取静态HTML,遇到大量通过JavaScript动态渲染的页面(如知乎、微博等)时就无能为力。Selenium通过自动化浏览器,能真实模拟用户浏览过程,配合BeautifulSoup进行HTML解析,成为抓取动态网页的利器。本文以知乎为例,详细介绍如何使用Selenium抓取动态内容,并用BeautifulSoup提取目标数据。


一、技术选型及原理

  • Selenium:自动化浏览器操作,执行JavaScript加载内容,等待页面元素渲染完成。
  • BeautifulSoup:对Selenium获取的完整HTML源码进行结构化解析,方便提取关键信息。

二、环境准备

  1. 安装Python依赖:
pip install selenium beautifulsoup4
  1. 下载对应浏览器驱动(以Chrome为例):

    • 访问ChromeDriver下载页面
    • 确保版本与Chrome浏览器匹配
    • 将驱动放入系统PATH或指定路径

三、知乎动态内容爬取流程解析

知乎首页或问题页的大量内容是动态通过JS加载的。直接requests.get()拿到的HTML是初始骨架,内容空缺。用Selenium打开页面后,浏览器会自动运行JS,内容变为完整。然后用page_source获取完整HTML,再用BeautifulSoup解析提取。


四、实战示例:爬取知乎某个问题的回答列表

from selenium import webdriverfrom selenium.webdriver.chrome.options import Optionsfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver

上犹新闻