这里写自定义目录标题
- selenium自动化测试框架在爬虫的应用
- selenium大幅降低爬虫的编写难度
- 大幅降低速度
一、selenium概述
1. 运行操作
- selenium是一个web自动化测试工具
- 开发使用 有头浏览器,部署使用无界面浏览器
- webdriver本质是一个web-server,对外提供API,封装了浏览器的各种功能
- 代码调用webdriver操作浏览器
2. 安装webdriver
查看浏览器版本,安装对应的驱动
https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
然后将其中的.exe文件复制到浏览器的安装路径下。
浏览器安装路径:C:\Program Files (x86)\Microsoft\Edge\Application
利用python的脚本语言,指定浏览器的驱动。(一定要指定到驱动的名称,即复制进浏览器安装路径里的.exe文件的名称。如果只到application,python脚本运行会报错。)
import time
from selenium import webdriver
# 通过指定msedgdriver的路径来实例化driver对象,msedgedriver放在当前目录
# msedgedriver添加环境变量了,但是不知道为什么不指定路径就会报错
driver = webdriver.Edge('C:\Program Files (x86)\Microsoft\Edge\Application\msedgedriver')
# driver = webdriver.Edge()
# 控制浏览器访问url地址
driver.get("https://www.baidu.com/")
# 百度搜索框中搜索python
driver.find_element_by_id('kw').send_keys('python')
# 点击搜索python
driver.find_element_by_id('su').click()
time.sleep(6)
# 6s后退出浏览器
driver.quit
二、元素定位
1. driver对象的常用属性、方法
driver.page_source
当前标签浏览器选然后的源码
driver.current_url
响应的源码(不是请求的源码
driver.close()
关闭标签
driver.quit()
关闭浏览器
driver.forward()
页面前进
driver.back()
页面后退
driver.screenshot(img_name)
页面截图
import time
from selenium import webdriver
driver = webdriver.Edge('C:\Program Files (x86)\Microsoft\Edge\Application\msedgedriver')
url = 'http://www.baidu.com'
driver.get(url)
print(driver.page_source)
driver.save_screenshot('baidu.png')
2. 定位方法
#通过xpath进行元素定位
driver.find_element_by_xpath('//*[@id="kw"]').send_keys('python3')
# 通过css选择器 元素定位:复制selector #kw
driver.find_element_by_css_selector('#kw').send_keys('德赫')