Selenium与Headless
我们爬去js动态数据生出的数据时,Selenium是常客。
以往Selenium和PhantomJS是最佳拍档,但是,后来他们分手了。
本来恋爱,就是因为PhantomJS支持Headless,后来chrome和firefox都支持Headless模式了,Selenium就提出,我们分手吧。
我们知道,新版的Selenium+PhantomJS,报错如下Selenium support for PhantomJS has been deprecated, please use headless
.
太决绝了。
接下来,我们以mac的Selenium+chromedriver为例子。搭建下环境。
Headless模式是Chrome 59中的新特征。
Chrome本省并不自带chromedriver,需要安装
环境搭建
step1 下载与当前chrome版本相匹配的chromedriver。
注:记得下载与当前chrome想匹配的版本
无法科学download,可以到淘宝镜像下载
step2 解压chromedriver,移动至/usr/local/bin
解压后,得到一个文件,移动至/usr/local/bin
验证是否允许链接
打开Terminal,把/usr/local/bin下的chromedriver拉进去,回车。
得到类似信息,即可
Starting ChromeDriver 2.43.600229 (3fae4d0cda5334b4f533bede5a4787f7b832d052) on port 9515
Only local connections are allowed.
step3 使用
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get("test url")
test url,比如https://cnblogs.com/
完成。