一、什么是Selenium
Selenium是一个自动化测试工具,对各种浏览器都能很好地支持,包括Chrome、Firefox这些主流浏览器。使用它就可以模拟浏览器进行各种各样的操作,包括爬取一些网页内容。当你看到浏览器自己运行并且在网页上翻页或者跳转的时候,应该会觉得很有趣的。
安装selenium
先安装好Selenium库和对应浏览器的WebDriver驱动,比如我用的是Chrome,则相对应安装的是ChromeDriver。
1.安装selenium # 打开命令控制符执行 pip install selenium
2.我的Google Chrome 已是最新版本版本 74.0.3729.108(正式版本) (64 位)
安装三大浏览器驱动driver
1.chromedriver 下载地址:http://chromedriver.storage.googleapis.com/index.html?path=74.0.3729.6/
2.Firefox的驱动geckodriver 下载地址:https://github.com/mozilla/geckodriver/releases/
3.IE的驱动IEdriver 下载地址:http://www.nuget.org/packages/Selenium.WebDriver.IEDriver/
注意:64位向下兼容,直接下载32位的就可以啦,亲测可用。
chromedriver_win32.zip
D:\Python\python\Scripts
.粘贴chromedriver.exe到文件d:\Python37\Scripts路径下。
如果Chrome问题闪退 ,不兼容问题!
二、selenium基本使用
用python写爬虫的时候,主要用的是selenium的Webdriver,我们可以通过下面的方式先看看Selenium.Webdriver支持哪些浏览器
声明浏览器对象:
from selenium import webdriver
from time import sleep
driver = webdriver.Chrome() # 打开Google浏览器
#driver= webdriver.Firefox()
#driver= webdriver.Ie()
driver.get('http://www.baidu.com') # 打开 网址
#driver.get(r"C:\desktop\text.html") # 打开本地 html页面
driver.maximize_window() #将浏览器最大化显示
driver.set_window_size(480, 800) #设置浏览器宽480、高800显示
# 移动浏览器大小观看展示
driver.set_window_size(width=500, height=500, windowHandle="current")
driver.set_window_position(x=1000, y=100, windowHandle='current')
# 获取当前页面的源码并断言
pageSource = driver.page_source
sleep(2)
try:
assert u"百度一下,你就不知道" in pageSource, "页面源码中未找到'百度一下,你就知道'关键字"
# 断言语句和 if 分支有点类似,它用于对一个 bool 表达式进行断言,如果该 bool 表达式为 True,该程序可以继续向下执行;否则程序会引发 AssertionError 错误。
except:
print("源码这里故意断言错误", "\n")
sleep(2)
try:
title = driver.title # 获取打开网址 的名字
url = driver.current_url # 获取打开网址的url
driver.page_sourse #打印出页面源代码
driver.forward() #浏览器前进
driver.back() #浏览器后退
except:
#print("Oops! That was no valid number. Try again ")
driver.close() #关闭这个页面
# driver.quit() #退出浏览器