Selenium简介及安装

来自CloudWiki
跳转至: 导航搜索

本节课将会讲到Selenium的环境搭建以及简单使用,并且通过爬取淘宝的例子讲授如何通过Selenium库爬取到淘宝的商品价格。最后介绍一些学习方法以及学习网站。

Selenium

什么是Selenium

Selenium 是一个用于浏览器自动化测试的框架,可以用来爬取任何网页上看到的数据。

Selenium的优缺点

优点:Selenium可以爬取任何网页的任何内容,因为它是通过浏览器访问的方式进行数据的爬取,没有网站会拒绝浏览器的访问。

缺点:时间以及内存消耗太大

Selenium的下载与安装

安装:在终端输入 pip install selenium

手动安装

下载:下载Chromedriver

Chromedriver与Chrome对应关系:

chromedriver 版本 chrome 版本 发布时间
2.44 	v69-71 	2018-11-19 
2.43 	v69-71 	2018-10-16
2.42	v68-70 	2018-09-13
2.41	v67-69		2018-07-27
2.40	v66-68		2018-06-07
2.39	v66-68		2018-05-30
2.38	v65-67		2018-04-17
2.37	v64-66		2018-03-16
2.36 	v63-65 	2018-03-02
2.35 	v62-64 	2018-01-10
2.34 	v61-63 	2017-12-10
2.33	v60-62 	2017-10-03

(参考文档:https://www.jianshu.com/p/c286d4b98108)

解压:将解压后的chromedriver.exe文件放在…\Google\Chrome\Application\ 中,

然后使用代码测试:

from selenium import webdriver #导入包 
driver = webdriver.Chrome("C:/Program Files (x86)/Google/Chrome/Application/chromedriver.exe")  #打开Chrome浏览器
driver.get('http://www.baidu.com')  #输入url,打开百度首页

常见错误排错:https://www.cnblogs.com/testway/p/8079237.html

界面如下:

Bd3-16.png

自动安装

安装第三方库

自动安装需要用到第三方库webdriver_manager,先安装这个库,然后调用对应的方法即可。

pip install selenium

pip install webdriver_manager

代码:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from webdriver_manager.chrome import ChromeDriverManager
# 使用前先导入By类
from selenium.webdriver.common.by import By

browser = webdriver.Chrome(ChromeDriverManager().install())

browser.get('http://www.baidu.com')
#search = browser.find_element_by_id('kw')
search = browser.find_element(By.ID,'kw')
search.send_keys('python')
search.send_keys(Keys.ENTER)

# 关闭浏览器
browser.close()

上述代码中,ChromeDriverManager().install()方法就是自动安装驱动的操作,它会自动获取当前浏览器的版本并去下载对应的驱动到本地。

输出:

====== WebDriver manager ======
Current google-chrome version is 97.0.4692
Get LATEST chromedriver version for 97.0.4692 google-chrome
There is no [win32] chromedriver for browser  in cache
Trying to download new driver from https://chromedriver.storage.googleapis.com/97.0.4692.71/chromedriver_win32.zip