1、Selenium概述
Selenium(Web Browser Automation)的初衷是Web应用自动化测试。Selenium还广泛应用于爬虫,爬虫需要让浏览器自动运行网址来获取我们需要的内容
Selenium不是单个软件,它是由一系列的工具组成
Selenium库支持多种编程语言:Python、Java等,支持多种浏览器:Chrome、Firefox、Edge等,支持跨平台:Windows、MacOS、Linux
Selenium的动作操作可以使用Selenium调用WebDriver执行与用户交互相关的动作,例如单击、右键单击、悬停、拖放等。通过模拟用户在网页上的行为,可以实现更真实的测试和自动化操作
动作操作在爬虫领域具有重要的作用和意义。虽然传统的爬虫主要关注数据的抓取和解析,但随着网站的逐渐发展和演变,越来越多的网页采用了动态加载、异步加载或基于JavaScript的交互式元素
在这种情况下,传统的静态页面爬取方法可能无法获取到完整的数据或准确的页面状态。而动作操作则可以模拟人类用户与网页的交互行为,使爬虫能够处理这些动态页面并正确获取所需的数据
Selenium优势在于:
- 处理动态加载:许多网页使用AJAX或其他技术进行动态加载内容。通过执行动作操作,爬虫可以模拟用户的滚动、点击等操作,触发页面的动态加载,获取完整的数据
- 解析交互式元素:某些网页包含需要用户交互才能显示的元素,例如展开更多评论、加载更多图片等。通过模拟用户操作,爬虫可以触发这些元素的显示,并正确解析其中的数据
- 模拟登录和表单提交:一些网站要求用户登录或填写表单后才能访问所需的数据。通过动作操作,爬虫可以模拟登录操作或填写表单,以获取需要的数据
- 处理验证码:许多网站为了防止机器人爬取数据而使用验证码。通过动作操作,爬虫可以模拟用户输入验证码或使用其他识别方式来处理验证码验证过程
Selenium的动作操作在爬虫中的应用可以提高数据的完整性和准确性,使爬虫能够更好地应对动态页面和交互式元素的挑战,从而实现更全面、高效的数据采集任务
Selenium中文文档:https://www.selenium.dev/zh-cn/documentation/webdriver/getting_started/
2、Selenium环境搭建
1)下载浏览器驱动(WebDriver)
WebDriver主要用于驱动浏览器运行
Chrome浏览器的WebDriver(chromedriver.exe
)下载安装配置:
-
查看Chrome浏览器版本
设置 -> 关于Chrome -> 版本 -
下载对应版本对应操作系统的驱动(前3位版本号一致即可)
淘宝镜像(114及之前版本):http://npm.taobao.org/mirrors/chromedriver/
官方镜像(指定版本下载):https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/117.0.5938.62/win64/chromedriver-win64.zip -
安装目录
解压即可。将解压的chromedriver.exe
复制放在Chrome浏览器安装目录下的Application目录中或Python解释器的安装目录下(与python.exe
同级) -
配置系统环境变量Path
添加chromedriver.exe
绝对路径,如果放在Python相关目录下该步骤可省略
# Application目录(右键图标打开文件所在位置)
C:\Users\cc\AppData\Local\Google\Chrome\Application
# Python解释器所在目录(或Scripts下)
E:\Program Files\Python\Python310
E:\Program Files\Python\Python310\Scripts
- 验证:Win+R,打开cmd命令行,使用如下命令验证:
chromedriver.exe
2)安装:
pip install selenium
3、Selenium基本操作
使用到的模块:文章来源:https://www.toymoban.com/news/detail-723637.html
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver import ActionChains, Keys # 动作类
from selenium.webdriver.support.wait import WebDriverWait # 等待类
from selenium.webdriver.support import expected_conditions as EC # 等待条件类
from selenium.webdriver.support.select import Select # Select类
import time
3.1、页面等待加载文章来源地址https://www.toymoban.com/news/detail-723637.html
# 强制等待10s
time.sleep(10)
# 显式等待(Explicit Wait):等待特定条件达成
# 最长等待时间10s,EC.presence_of_element_located()是一个预定义的条件,用于等待元素出现在页面中
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.XPATH, 'expr'))
)
# 隐式等待(Implicit Wait):等待一定时间段
# 最长等待时间10s,如果元素未找到将继续等待直到最长时间
driver.implicitly_wait(10)
到了这里,关于Selenium:Web自动化框架的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!