Selenium+PhantomJS使用时报错原因及解决方案
错误信息:
UserWarning: Selenium support for PhantomJS has been deprecated, please use headless versions of Chrome or Firefox instead
翻译过来是:
用户警告:对Phantomjs的Selenium支持已被弃用,请改用Chrome或Firefox的无头版本。
解决方案:
一:依着官方说明进行跟进,使用Chrome无头版本
website:https://sites.google.com/a/chromium.org/chromedriver/home
注:记得查看系统安装的Chrome浏览器版本
如何启用无界面Chrome:
有两种,这是第一种:
from selenium import webdriver
# 创建chrome参数对象
opt = webdriver.ChromeOptions()
# 把chrome设置成无界面模式,不论windows还是linux都可以,自动适配对应参数
opt.set_headless()
# 创建chrome无界面对象
driver = webdriver.Chrome(options=opt)
# 访问百度
driver.get('https://baidu.com/')
#打印内容
print(driver.page_source)
第二种:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument('--no-sandbox')#解决DevToolsActivePort文件不存在的报错
chrome_options.add_argument('window-size=1920x3000') #指定浏览器分辨率
chrome_options.add_argument('--disable-gpu') #谷歌文档提到需要加上这个属性来规避bug
chrome_options.add_argument('--hide-scrollbars') #隐藏滚动条, 应对一些特殊页面
chrome_options.add_argument('blink-settings=imagesEnabled=false') #不加载图片, 提升速度
chrome_options.add_argument('--headless') #浏览器不提供可视化页面. linux下如果系统不支持可视化不加这条会启动失败
chrome_options.binary_location = r"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" #手动指定使用的浏览器位置
driver=webdriver.Chrome(chrome_options=chrome_options)
driver.get('https://www.baidu.com')
print('hao123' in driver.page_source)
driver.close() #切记关闭浏览器,回收资源
注:Firefox的用法跟Chrome一样
二:selenium版本降级
查看当前selenium版本:pip3 show selenium
卸载selenium:pip3 uninstall selenium
安装指定版本:pip3 install selenium==2.48.0
附上phantomjs下载地址(官网的可不好下载):http://npm.taobao.org/dist/phantomjs