Selenium+PhantomJS使用时报错原因及解决方案
问题
今天在使用selenium+PhantomJS动态抓取网页时,出现如下报错信息:
UserWarning: Selenium support for PhantomJS has been deprecated, please use headless versions of Chrome or Firefox instead
warnings.warn('Selenium support for PhantomJS has been deprecated, please use headless '
翻译过来就是:
selenium已经放弃PhantomJS,了,建议使用火狐或者谷歌无界面浏览器。
解决方案
selenium版本降级
通过pip show selenium显示,默认安装版本为3.8.1。
将其卸载pip uninstall selenium,重新安装并指定版本号pip install selenium==2.48.0。
再次运行,发现没有报错,搞定!
使用无界面浏览器
Selenium+Headless Firefox
Selenium+Headless Firefox和Selenium+Firefox,区别就是实例option的时候设置-headless参数。
前提条件:
- 本地安装Firefox浏览器
- 本地需要geckodriver驱动器文件,下载地址:https://github.com/mozilla/geckodriver/releases/,
如果不配置环境变量的话,需要手动指定executable_path参数。
from selenium.webdriver import Firefox
from selenium.webdriver.firefox.options import Optionsdef main():options = Options()options.add_argument('-headless')driver = Firefox(executable_path='./geckodriver', firefox_options=options)driver.get("https://www.qiushibaike.com/8hr/page/1/")print(driver.page_source)driver.close()if __name__ == '__main__':main()
Selenium+Headless Chrome
与Firefox
类似,双手奉上。
前提条件:
- 本地安装Chrome浏览器
- 本地需要chromedriver驱动器文件,下载地址:https://sites.google.com/a/chromium.org/chromedriver/home
如果不配置环境变量的话,需要手动指定executable_path
参数。
示例:
from selenium import webdriver
from selenium.webdriver.chrome.options import Optionsdef main():chrome_options = Options()chrome_options.add_argument('--headless')chrome_options.add_argument('--disable-gpu')driver = webdriver.Chrome(executable_path='./chromedriver', chrome_options=chrome_options)driver.get("https://www.baidu.com")print(driver.page_source)driver.close()if __name__ == '__main__':main()
如上,完美解决~
Selenium+PhantomJS使用时报错原因及解决方案相关推荐
- mysql1045_win10系统登录mysql时报错1045的解决方案
在刚刚安装的win10系统下登录MySQL时遇到1045错误提示,该怎么办?这是很多用户最近都向小编反馈的问题,每位用户都表示因为这个问题非常头疼.为了让大家更好地使用win10系统,下面就分享登录m ...
- MATLAB下载时报错原因
MATLAB下载时报错原因 情况 报错 原因 情况 下载MATLAB到99%时失败 报错 background merge hit exception: _2y(4.6):C350989 _2x(4. ...
- KeyError: ‘Spider not found: itcast‘ 运行scrapy crawl时报错原因总结
1. 由于运行scrapy genspider所在目录不在生成的爬虫项目文件夹下 错误重现 # 1. 创建爬虫项目 C:\scrapy>scrapy startproject myFirstSp ...
- oracle 01405 提取的值为null,ORA-01405: 提取的列值为 NULL--报错原因及解决方案
报错信息:ORA-01405: 提取的列值为 NULL 问题出现原因:形如 SELECT a INTO :a FROM NewXCData WHERE a = 'test'; 如果a的值为空,则会报此 ...
- TypeError: fullscreen error at HTMLInputElement.toggleFullscreen 报错原因与解决方案
在使用iframe进行内容嵌套时候,如果内层页面有全屏的功能,点击内层全屏功能,就可能出现上述报错. 原因: iframe是有一个默认的属性allowfullscreen,默认值为false,默认不支 ...
- 异常报错原因及解决方案
java.lang.NullPointerException出现的几种原因以及解决 1.字符串变量未初始化 2.接口类型的对象没有用具体的类初始化,比如: Map map // 会报错 Map map ...
- 出现Unexpected token u in JSON at position 0 报错原因及解决方案
出现问题的原因基本就是使用了JSON.parse(data) JSON中的值不能是undefined 这里面的 data 不能是 undefined类型,如果是undefined,指定会 ...
- Selenium | 引用WebElement时报错stale element reference: element is not attached to the page document
当项目中需要断言文本是否在元素列表的文本集中时,在对元素列表中的元素for循环遍历进行WebElement.text 操作时,随机性的出现state element reference的报错信息 源代 ...
- 微信小程序 - Setting data field “xxx“ to undefined is invalid.报错原因及解决方案
前言 ## 完整报错(SEO) ## 翻译: 将数据字段"XXX"设置为未定义是无效的. Setting data field "xxx" to undefin ...
最新文章
- 极光推送收不到推送消息
- 电大计算机应用基础 课程考核3,电大专科-计算机应用基础作业3答案.doc
- [python pycharm pytorch debug sets]
- linux中iptable中端口,Linux如何打开iptables中的端口
- php打印布尔型,PHP数据类型之布尔型的介绍_PHP
- BaseService代码示例
- 打破独立游戏开发者的困局
- Oracle DBA手记3:数据库性能优化与内部原理解析
- 随手记_英语_学术写作
- SystemExit: 2
- PDF文件批量添加目录详细教程
- ansys命令流力磁耦合仿真
- C++函数模板特化,类模板特化
- c语言的链表ppt,C语言链表详解ppt.ppt
- 大数据和数据挖掘是什么关系?
- 在Octane中提升渲染速度的技巧(第2部分)
- 简单文本API的解析(一言)
- JavaScript词汇表
- 一本正经的经验帖——如何使用FDM 3D打印机进行批量化生产
- 投CVPR过程中惊险的Rebuttal环节
热门文章
- altium designer丝印变绿,3D封装变绿,出现」25.4mm提示的解决方法
- 作业03:格式化输出
- 力扣(LeetCode)31
- asp.net C# MVC 提交表单后清空表单
- react七——react-redux
- 【jQuery Demo】图片瀑布流实现
- Word VSTO Error:Interop type 'Microsoft.Office.Interop.OneNote.Application' cannot be embedded...
- Oracle SQL之 序列使用限制
- java面试题,将String字符串转换成数字
- SharePoint中的列表(List) 与Content Type 之五