Selenium与python爬虫(一)【安装与定位元素】

selenium配置

首先搞清楚selenium是干嘛的。这个东东其实是用来做自动化网页测试的。就是模拟人类行为像鼠标键盘之类的操作,与之前使用requests等的区别在于,这玩意是一个动态获取的行为。不是单纯的一次性的获取网页源代码,可以后不断获取,最简单的在爬虫中的应用就是移动滑块验证。
下载selenium可以直接使用pip下载安装指令。
配置浏览器,下载相应的webdriver版本即可
下面以chrome为例
1.查看chrome版本
Selenium与python爬虫(一)【安装与定位元素】_第1张图片
2.下载 chromedriver
下载网址
Selenium与python爬虫(一)【安装与定位元素】_第2张图片
3.将下载好的chromedriver.exe放入文件中
这里有两个选择;1.放置与python的script目录下
Selenium与python爬虫(一)【安装与定位元素】_第3张图片

或者放置于另一个指定目录内(英文路径内)

验证安装成功

from selenium import webdriver

drive=webdriver.Chrome()
#drive=webdriver.Chrome(executable_path=指定路径)

drive.get('https://www.baidu.com/')

弹出窗口
Selenium与python爬虫(一)【安装与定位元素】_第4张图片

基础操作

首先要声明的是selenium有些方法是很长的乍一眼看上去很复杂,其实简单的鸭皮。
1.打开一个网页
2.定位一个元素
3.实现简单的点击操作

打开网页

drive.get('https://www.baidu.com/')

定位元素

定位元素的话操作手段就比较多了。
最主要的是先分两大类,一个是获取当个对象,一个是获取多个对象。
比如;

InputTag=drive.find_element_by_name('wd')

获取一个(第一个)

InputTag=drive.find_elements_by_name('wd')

获取全部
在代码中_by_name()的意思就是通过name的值来定位
此外还有很多方法。如图
Selenium与python爬虫(一)【安装与定位元素】_第5张图片
必要时直接通过xpath语法定位

对象操作

这里要注意一下的是我么只是单纯的通过定位获取到了相应元素,
因此我们可以进行的操作只是点击,发送之类的操作。对于较复杂的操作只能通过鼠标对象操作。比如;单击,双击,右击,拖拽。。。
send_keys()发送相应的值
click()点击
clear()清空

实例操作(演示)

目标在百度页面输入python并且点击搜索
Selenium与python爬虫(一)【安装与定位元素】_第6张图片
Selenium与python爬虫(一)【安装与定位元素】_第7张图片
现在我们已经知道了具体的元素定位。
下面分别使用通过name定位和xpath定位

from selenium import webdriver

drive=webdriver.Chrome()
drive.get('https://www.baidu.com/')
############
InputTag=drive.find_element_by_name('wd')
InputTag.send_keys('python')
############
SubmitBut=drive.find_element_by_xpath('//input[@type="submit" and @value="百度一下"]')
SubmitBut.click()

效果如下
Selenium与python爬虫(一)【安装与定位元素】_第8张图片

精简写法

像上面那样使用代码较为冗长,这是可以考虑缩减写法,并且此写法在后面会有小惊喜。
区别;也没啥就是再使用了一个方法包装了一下
1.导入

from selenium.webdriver.common.by import By

2.缩减代码

from selenium import webdriver
from selenium.webdriver.common.by import By

drive=webdriver.Chrome()
drive.get('https://www.baidu.com/')
############
InputTag=drive.find_element(By.NAME,'wd')
InputTag.send_keys('python')
############
SubmitBut=drive.find_element(By.XPATH,'//input[@type="submit" and @value="百度一下"]')
SubmitBut.click()

页面关闭与浏览器

1.只是关闭上一个页面

drive.close()

2关闭浏览器

drive.quit()

你可能感兴趣的:(python,爬虫,selenium,python,chrome)