爬虫入门学习(六)Selenium学习与实战
1 Selenium简介及应用场景
- 简介
Selenium是一个用于测试网站的自动化测试工具,利用它可以驱动浏览器执行特定的动作(即模拟人的操作),如点击、下拉等。它支持各种浏览器包括Chrome、Firefox、Safari等主流界面浏览器,同时也支持phantomJS无界面浏览器。 - 应用场景(针对爬虫)
正对一些JavaScript动态渲染的页面,使用Selenium抓取网页源码非常有效,可以模拟人,做到可见即可爬。
中文官方文档(Selenium-Python)
英文官方文档(Selenium-Python
英文官方文档(混合语言
2 Selenium安装及配置
- 安装Selenium
安装比较简单,建议直接用pip安装
# 安装
pip install selenuim
# 测试
import selenium
- 安装ChromeDriver
Selenium需要浏览器来配合使用,这里我们使用Chrome浏览器,然后我们需要配置ChromeDriver驱动。
这里需要注意浏览器的版本和浏览器的版本ChromeDriver驱动需要一致才行。
查看 浏览器版本:Chrome菜单–>帮助–>关于Google Chrome即可查看,剩下的就是在ChromeDriver官网下载对应版本的ChromeDriver就可以了。 - 配置ChromDriver的环境变量
方法一:Windows下建议直接将chromedriver.exe文件直接拖拽到Python的Scripts目录下。
方法二:把chromedriver.exe文件所在目录设为配置到环境变量。j具体:我的电脑–>属性–>高级系统设置–>环境变量–>系统变量–>Path,将上述路径目录添加到Path的值中。 - 测试Selenium和ChromeDriver是否安装成功
在Python IDLE
from selenium import webdriver
driver = webdriver.Chrome()
成功的话,会如下显示:
3 Selenium基本使用方法
这里仅仅列出了一些最常用的Selenium使用方法,更多的使用方法请参照中文官方文档(Selenium-Python)或者英文官方文档(Selenium-Python。
3.1 查找、定位节点
Selenium提供了8种方法和一个通用函数版本来定位单个节点,同时也相应的提供了8种方法和一个通用函数版本来定位多个节点。
具体见下表:
定位方式 | 定位一个节点 | 定位多个节点 |
---|---|---|
通过class name | find_element_by_class_name(name) | find_elements_by_class_name(name) |
通过css selector | find_element_by_css_selector(css_selector) | find_elements_by_css_selector(css_selector) |
通过id | find_element_by_id(id_) | find_elements_by_id(id_) |
通过link_text | find_element_by_link_text(link_text) | find_elements_by_link_text(link_text) |
通过name | find_element_by_name(name) | find_elements_by_name(name) |
通过partial_link_text | find_element_by_partial_link_text(link_text) | find_elements_by_partial_link_text(link_text) |
通过tag_name | find_element_by_tag_name(name | find_elements_by_tag_name(name |
通过xpath | find_element_by_xpath(xpath) | find_elements_by_xpath(xpath) |
通用方法 | find_element(by=‘id’, value=None) | find_elements(by=‘id’, value=None) |
通用方法示例 | elements = driver.find_element(By.CLASS_NAME, ‘foo’) | elements = driver.find_elements(By.CLASS_NAME, ‘foo’) |