[Selenium]01.Selenium的介绍
[Toc]
Selenium是一个自动化测试工具,利用它可以驱动浏览器执行特定的动作,如点击、下拉等操作。
Selenium可以获取浏览器当前呈现的页面源代码,做到可见既可爬,对应JavaScript动态渲染的信息爬取非常有效。
官方网址:http://www.seleniumhq.org
官方文档:http://selenium-python.readthedocs.io
中文文档:http://selenium-python-zh.readthedocs.io
Selenium支持非常多的浏览器,如Chrome、Firefox、Edge等,还支持无界面浏览器PhantomJS。
安装
将selenium库安装python中
在系统命令提示符输入
pip install selenium
它会联网从更新库中下载库包,并自动安装更新。
下载chromedriver
想要Python驱动chrome,需要使用ChromeDriver(注意浏览器版本)。
ChromeDriver与Chrome版本对应参照表及ChromeDriver下载链接
ChromeDriver Version | Chrome Version |
---|---|
78.0.3904.11 | 78 |
77.0.3865.40 | 77 |
77.0.3865.10 | 77 |
76.0.3809.126 | 76 |
76.0.3809.68 | 76 |
76.0.3809.25 | 76 |
76.0.3809.12 | 76 |
75.0.3770.90 | 75 |
75.0.3770.8 | 75 |
74.0.3729.6 | 74 |
73.0.3683.68 | 73 |
72.0.3626.69 | 72 |
2.46 | 71-73 |
2.46 | 71-73 |
2.45 | 70-72 |
2.44 | 69-71 |
2.43 | 69-71 |
2.42 | 68-70 |
2.41 | 67-69 |
2.40 | 66-68 |
2.39 | 66-68 |
2.38 | 65-67 |
2.37 | 64-66 |
2.36 | 63-65 |
2.35 | 62-64 |
- 根据你的Chrome版本,下载相对应的ChromeDriver。
- 将chromedriver.exe放在chrome浏览器安装目录下。
- 同时设置用户环境变量Path:C:\Program Files (x86)\Google\Chrome\Application,指向chrome安装目录。
Windows安装:将解压的文件:chromedriver.exe 放置到浏览器的安装目录下。
Mac/Linux安装:将解压的文件:chromedriver 放置到/usr/local/bin/目录下
PhantomJS驱动的下载地址:http://phantomjs.org/download.html
Selenium的使用
初次体验:模拟谷歌浏览器访问百度首页,并输入python关键字搜索
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
#初始化一个浏览器(如:谷歌,使用Chrome需安装chromedriver)
driver = webdriver.Chrome()
#driver = webdriver.PhantomJS() #无界面浏览器
try:
#请求网页
driver.get("https://www.baidu.com")
#查找id值为kw的节点对象(搜索输入框)
input = driver.find_element_by_id("kw")
#模拟键盘输入字串内容
input.send_keys("python")
#模拟键盘点击回车键
input.send_keys(Keys.ENTER)
#显式等待,最长10秒
wait = WebDriverWait(driver,10)
#等待条件:10秒内必须有个id属性值为content_left的节点加载出来,否则抛异常。
wait.until(EC.presence_of_element_located((By.ID,'content_left')))
# 输出响应信息
print(driver.current_url)
print(driver.get_cookies())
print(driver.page_source)
finally:
#关闭浏览器
#driver.close()
pass
网友评论