用selenium爬取动态网页

Selenium 是一个用于自动化 Web 浏览器的工具,适用于爬取动态网页。下面是一个使用 Python 和 Selenium 爬取动态网页的示例。假设我们要爬取一个加载动态内容的网页,并提取其中的一些数据。

环境准备

首先,确保你已经安装了以下工具:

Python:确保安装了 Python 3.x。

Selenium:使用以下命令安装 Selenium。

java 复制代码
pip install selenium

浏览器驱动:Selenium 需要浏览器驱动来与浏览器进行交互。以 Chrome 为例,你需要下载 ChromeDriver 并将其添加到系统路径中。

示例代码

下面是一个使用 Selenium 爬取动态网页的示例代码:

java 复制代码
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 配置 WebDriver(这里以 Chrome 为例)
options = webdriver.ChromeOptions()
options.add_argument("--headless")  # 无头模式
driver = webdriver.Chrome(executable_path='/path/to/chromedriver', options=options)

# 目标网页
url = 'https://example.com/dynamic-content'

try:
    # 打开目标网页
    driver.get(url)
    
    # 等待网页中的动态内容加载完毕(以某个元素的出现为标志)
    element_present = EC.presence_of_element_located((By.ID, 'element-id'))
    WebDriverWait(driver, 10).until(element_present)

    # 查找并提取所需的数据(这里以提取某个元素的文本为例)
    element = driver.find_element(By.ID, 'element-id')
    data = element.text
    print(f'Extracted data: {data}')

    # 如果需要处理更多动态加载的内容,可以重复上述操作
    # 例如,点击某个按钮加载更多内容:
    # load_more_button = driver.find_element(By.ID, 'load-more-button')
    # load_more_button.click()
    # WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, 'new-element-id')))
    # new_element = driver.find_element(By.ID, 'new-element-id')
    # new_data = new_element.text
    # print(f'Extracted new data: {new_data}')

finally:
    # 关闭 WebDriver
    driver.quit()
相关推荐
用户83562907805115 小时前
Python 操作 PDF 附件:添加、查看与管理指南
后端·python
宇宙之一粟1 天前
乐企版式文件生成平台
java·后端·python
学测绘的小杨2 天前
CompassFusion:一个从 GNSS 到 GNSS/INS 组合导航的独立工程包
python
zzzzzz3102 天前
当产品经理说这个很简单:我用Python自动化处理奇葩需求的实战指南
python·pycharm·产品经理
雪隐2 天前
个人电脑玩AI-06让5060 Ti给你打工——不光能画画,Qwen3-TTS还能学人说话,连我老板都信了!
人工智能·后端·python
兵慌码乱2 天前
面向桌面端的资产管理系统分层架构设计与核心模块实现
python·系统架构·sqlite·pyqt5·数据库设计·桌面应用开发·mvc架构
hboot2 天前
AI工程师第三课 - 机器学习基础
python·scikit-learn·kaggle
顾林海3 天前
Agent入门阶段-编程基础-Python:流程控制
python·agent·ai编程
呱呱复呱呱3 天前
Django CBV 源码解读:一个请求是怎么找到你的 get() 方法的
python·django
Caco_D3 天前
一行代码抓遍全网 20 个热榜!Aneiang.Pa 4.0 发布 — 极简 .NET 爬虫库
爬虫·.net