浏览器抓取网页(SeleniumSelenium驱动Selenium)
优采云 发布时间: 2022-03-17 06:03浏览器抓取网页(SeleniumSelenium驱动Selenium)
硒
Selenium 是一个web自动化测试工具,最初是为网站自动化测试而开发的,就像一个玩游戏的按钮向导,可以根据指定的命令自动操作。
Selenium 测试工具直接操作浏览器,就像真正的用户一样。Selenium 可以让浏览器根据指令自动加载页面,获取需要的数据,甚至对页面进行截图,或者判断 网站 上是否发生了某些动作。
1. 硒是如何工作的
如图,用Python控制Selenium,然后让Selenium控制浏览器,操纵浏览器,从而实现用Python间接控制浏览器。
1.1 硒配置
Selenium 支持多种浏览器,最常见的是 Firefox 和 Google Chrome。首先在电脑上下载浏览器,浏览器版本不要太新。
火狐:截图如下
谷歌:截图如下
1.2 浏览器驱动
Selenium 如何专门操纵浏览器?这要归功于浏览器驱动程序。Selenium 可以通过 API 接口与浏览器驱动进行交互,进而实现与浏览器的交互。所以配置浏览器驱动。
配置浏览器驱动:
将下载的浏览器驱动解压,解压后的exe文件放在Python安装目录下,即与python.exe在同一目录下。
1.3 使用硒
安装selenium模块,python使用该模块驱动浏览器,使用如下命令行安装该模块
pip install selenium
2 快速入门
# 打开百度首页
from selenium import webdriver
driver = webdriver.chrome()
url = 'https : / /www.baidu . com/ '
driver.get(url)
#打开get就类似与在浏览器地址栏里面放入网址
driver.get(url)
#退出浏览器
driver.quit()
萃取元件
通过selenium的基本使用,可以简单的定位元素,获取对应的数据。接下来,让我们学习如何定位元素。
find_element_by_id #(根据id属性值获取元素)
find_element_by_name #(根据标签的name属性)
find_element_by_class_name #(根据类名获取元素)
find_element_by_link_text #(根据标签的文本获取元素,精确定位)
find_element_by_partial_link_text#(根据标签包含的文本获取元素,模糊定位)
find_e1ement_by_tag_name #(根据标签名获取元素)
find_e1ement_by_xpath #(根据xpath获取元素)
find_element_by_css_selector #(根据css选择器获取元素)
上述方法只能在页面上找到某个标签元素。如果要获取多个元素,可以在元素后面加上字母s,如下图:
find_elements_by_id #(根据id属性值获取元素,返回一个1ist列表)
find_elements_by_name #(根据标签的name属性,返回一个1ist列表)
find_elements_by_class_name #(根据类名获取元素,,返回一个list列表)
find_elements_by_link_text #(根据标签的文本获取元素,精确定位,返回一个1ist列表)
find_elements_by_partial_link_text #(根据标签包含的文本获取元素,模糊定位,返回一个1ist列表)
find_elements_by_tag_name #(根据标签名获取元素,返回一个1ist列表)
find_elements_by_xpath #(根据xpath获取元素,返回一个1ist列表)
find_elements_by_css_selector #(根据css选择器获取元素,返回一个1ist列表)
案子: