selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium 可以直接运行在浏览器上,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器)。
selenium 可以根据我们的指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏,或者判断网站上某些动作是否发生。
selenium 自己不带浏览器,不支持浏览器的功能,它需要与第三方浏览器结合在一起才能使用。但是我们有时候需要让它内嵌在代码中运行,所以我们可以用一个叫PhantomJS 的工具代替真实的浏览器。
selenium库下载地址https://pypi.python.org/simple/selenium
1.selenium + chromedriver获取动态数据
selenium相当于一个机器人。可以模拟人类在浏览器上的一些行为,自动处理浏览器上的一些行为,比如:点击、填充数据、删除Cookie等。chromedriver是一个驱动Chrome的浏览器驱动程序,使用它才能驱动浏览器。针对不同的浏览器有不同的driver:
Chrome:https://sites.google.com/a/chromium.org/chromedriver/downloads
Firefox:https://github.com/mozilla/geckodriver/releases
Edge:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
Safari:https://webkit.org/blog/6900/webdriver-support-in-safari-10/
2.安装selenium和chromedriver
2.1 安装selenium
# 安装
pip install selenium
selenium的官网地址:http://selenium-python.readthedocs.io/index.html
2.2 安装chromedriver
上述提供的网址需要翻墙才能下载,此处提供一个不用翻墙的网址:http://chromedriver.storage.googleapis.com/index.html
或者使用
http://npm.taobao.org/mirrors/chromedriver/也可以下载
下载完成后,放到不需要权限的纯英文目录下
注意:可能找不到64位的软件,也可以使用同版本的32位的,也是能正常运行的。
3.入门
现在以一个简单的获取百度首页的案例进行演示
# Author:Logan
# Date:2020/4/8 10:29
# IDE:PyCharm
from selenium import webdriver
# chromedriver的绝对路径
driver_path = r'D:Pythonchromedriver.exe'
# 初始化一个driver,并且指定chromedriver的路径
driver = webdriver.Chrome(executable_path=driver_path)
# 请求网页
driver.get("https://www.baidu.com/")
# 通过page_source获取网页源代码
print(driver.page_source)
4.selenium关闭页面和退出浏览器
- 关闭页面:
driver.close()
- 退出浏览器:
driver.quit()
实战演练:
# Author:Logan
# Date:2020/4/8 10:29
# IDE:PyCharm
from selenium import webdriver
import time
# chromedriver的绝对路径
driver_path = r'D:Pythonchromedriver.exe'
# 初始化一个driver,并且指定chromedriver的路径
driver = webdriver.Chrome(executable_path=driver_path)
# 请求网页
driver.get("https://www.baidu.com/")
# 2秒后关闭页面
# 注:为了看到关闭浏览器的效果,打开后可以手工新打开一个标签页,由于谷歌浏览器在只有一个页面的情况下,关闭页面会自动退出浏览器
time.sleep(2)
driver.close()
# 3秒后关闭浏览器
time.sleep(3)
driver.quit()