用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()
相关推荐
燐妤几秒前
LangGraph-复习总览
python·ai·面试·agent·学习方法·langgraph
尹人入圣9 分钟前
市面上IP驱动产业新场景新工具
运维·网络·python·tcp/ip
打工仔折腾 AI34 分钟前
从BPE到SentencePiece:Transformer分词原理与Python实战对比
android·人工智能·python·深度学习·langchain·transformer·ai agent 实战
骑着蜗牛撵大象32744 分钟前
Qt 事件机制详解:从 QEvent 派生类到事件过滤器的全景指南
前端·python
流形填表1 小时前
题库迁移实战:Excel中间格式与列映射
python·excel
东方芷兰1 小时前
Agent 技术摘要 06 —— Harness、原生视觉、Jev、mmproj、dsh
人工智能·笔记·python·ai·langchain·ai编程
qq_2518364571 小时前
理发管理系统 —— 会员模块
开发语言·前端·python·flask
郝学胜-神的一滴1 小时前
AI 编程智能体 03:拆解当下主流智能体能力
开发语言·c++·人工智能·python·程序人生·游戏
言乐61 小时前
Python文字审核模型
开发语言·windows·python·django·pygame
wuyk5552 小时前
Python网络爬虫入门到实战 第02章:HTTP/HTTPS协议超通俗精讲(GET/POST、请求头、响应码、爬虫核心基础)
爬虫·python·http