📜  python selenium web 抓取示例 - Python (1)

📅  最后修改于: 2023-12-03 15:19:00.269000             🧑  作者: Mango

Python Selenium Web 抓取示例

简介

Python 是一门优秀的编程语言,Selenium 是一个自动化测试工具,可用于对 Web 应用进行测试。在 Python 中,有一个非常流行的 Selenium 库,也就是 selenium-python。

Selenium 提供了很多操作浏览器的方法和属性,我们可以使用这些方法模拟用户在浏览器中的操作,如点击、输入等,从而实现对 Web 应用的自动化测试和数据抓取。

本文将介绍如何使用 Python 和 Selenium 库实现 Web 数据抓取。

安装

安装 Selenium 库,可以使用 pip 工具,执行以下命令即可:

pip install selenium
抓取数据

以下是一个简单的例子,使用 Python 和 Selenium 抓取百度首页的标题和搜索框:

from selenium import webdriver

# 创建 Chrome 浏览器对象
driver = webdriver.Chrome()

# 加载页面
driver.get('https://www.baidu.com')

# 获取标题
title = driver.title
print(f'标题:{title}')

# 获取搜索框
search_box = driver.find_element_by_id('kw')
print(f'搜索框:{search_box}')

# 关闭浏览器
driver.quit()

输出结果:

标题:百度一下,你就知道
搜索框:<selenium.webdriver.remote.webelement.WebElement (session="5f92965e08d1a18fe92ef618d386f0f2", element="cd615adb-be07-4263-8206-98a809564206")>
更多抓取示例

除了获取标题和元素之外,Selenium 能够模拟更多的用户操作,如点击、输入等,以下是一些常见的抓取示例:

# 点击元素
element = driver.find_element_by_id('submit')
element.click()

# 输入文本
search_box = driver.find_element_by_id('kw')
search_box.send_keys('Python')

# 获取元素文本
element = driver.find_element_by_id('intro')
text = element.text
print(f'文本:{text}')

# 获取元素属性
element = driver.find_element_by_id('logo')
src = element.get_attribute('src')
print(f'图片地址:{src}')

# 等待元素出现
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

element = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.ID, 'content'))
)
总结

Python 和 Selenium 库是非常强大的 Web 抓取工具,可以模拟用户操作,自动化测试,数据抓取等。在实际应用中,我们需要根据具体的需求编写代码,实现相应的功能。