关于python中phantomjs无法访问网页的处理
笔者使用的系统是linux ubuntu,最近在学习爬虫的过程中遇到了一个抓狂的问题,我尝试使用selenium加phantomjs来登陆网页的时候,Pythony一直提示selenium无法找到元素,不管我怎样修改定位的方法,永远出现No such elements的错误,让我几乎抓狂。再确认了测试了好几遍编写的代码后,我将程序出现的错误定位在了其中这几行代码里面
>>> from selenium import webdriver
>>> driver = webdriver.PhantomJS()
>>> driver.get("http://weibo.com")
正常情况下,这三行无比简单的代码是不可能有错的,但是事实告诉我错就在这里。
>>> driver.page_source '<html><head></head><body></body></html>'
我尝试查看网页的源码,结果出来的就只有这些,新浪主页就这点东西???
>>> driver.get("asfgsdagshgdfh")
>>> driver.page_source
'<html><head></head><body></body></html>'
接下来我尝试乱输了一堆字符进去,查看源代码,还是这堆东西,这就让我比较抓狂了。随便输都是这样,那代表我安装的phantomjs浏览器是无法访问网页的,在按照网上的方法重新安装了最新的phantomojs后,结果还是这样,来来回回重装了N次,丝毫没有作用,折腾了一个下午也没有出结果
>>> driver.get("http://news.sina.com.cn/")
dri
>>> len(driver.page_source)
584412
>>>
再然后我不报希望的测试其它网页,百度,微博都是不行的,但新浪网反而可以访问,刚开始我觉得问题可能是出在网页的设置上,在更改了浏览器的headers之后还是无法访问,又经过几次尝试和归类,总结出这家伙其实是不能访问https开头的网址,http是超文本传输协议,s是ssl加密,https就是http加ssl,这就意味着我其实是不能访问经过ssl加密后的http网站。得到了这个结论之后,我开始在寻找解决的方法,在翻遍了国内各大网站无果后,我在国外的一个论坛发现了解决的办法。
driver=webdriver.PhantomJS(service_args=['--ssl-protocol=any']) or driver = webdriver.PhantomJS( service_args=['--ignore-ssl-errors=true'])
就这么一行简单的代码。
其实phantomjs的参数是可以在构造时设定的,我无法访问https的网站就是因为参数错了,在创建浏览器对象时将ssl的属性设置为any就可以解决。
关于python中phantomjs无法访问网页的处理的更多相关文章
- Python中的属性访问与描述符
Python中的属性访问与描述符 请给作者点赞--> 原文链接 在Python中,对于一个对象的属性访问,我们一般采用的是点(.)属性运算符进行操作.例如,有一个类实例对象foo,它有一个nam ...
- Python调用Webservice、访问网页
昨天在调试Webservice的时候,由于不想写测试程序,就想用Python访问Webservice,结果还是相当的麻烦.远没有VSIDE用的方便 不得不说VS还是很强大的,人性化做的很好,不需要你看 ...
- 在Python中使用BeautifulSoup进行网页爬取
目录 什么是网页抓取? 为什么我们要从互联网上抓取数据? 网站采集合法吗? HTTP请求/响应模型 创建网络爬虫 步骤1:浏览并检查网站/网页 步骤2:创建用户代理 步骤3:导入请求库 检查状态码 步 ...
- Python中通过cx_Oracle访问数据库遇到的问题总结
以下是Python中通过cx_Oracle操作数据库的过程中我所遇到的问题总结,感谢我们测试组的前辈朱勃给予的帮助最终解决了下列两个问题: 1)安装cx_Oracle会遇到的问题:在Windo ...
- Python 中的属性访问与描述符
在Python中,对于一个对象的属性访问,我们一般采用的是点(.)属性运算符进行操作.例如,有一个类实例对象foo,它有一个name属性,那便可以使用foo.name对此属性进行访问.一般而言,点(. ...
- python+selenium+PhantomJS爬取网页动态加载内容
一般我们使用python的第三方库requests及框架scrapy来爬取网上的资源,但是设计javascript渲染的页面却不能抓取,此时,我们使用web自动化测试化工具Selenium+无界面浏览 ...
- Python中使用 Selenium 实现网页截图实例
Selenium 是一个可以让浏览器自动化地执行一系列任务的工具,常用于自动化测试.不过,也可以用来给网页截图.目前,它支持 Java.C#.Ruby 以及 Python 四种客户端语言.如果你使用 ...
- 使用python标准库urllib2访问网页
#访问不需要登录的网页import urllib2target_page_url='http://10.224.110.118/myweb/view.jsp' f = urllib2.urlopen( ...
- python中定义函数和参数的传递问题
作者:達聞西链接:https://zhuanlan.zhihu.com/p/24162430来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 5.2.4 函数.生成器和类 ...
随机推荐
- iOS 即时视频和聊天(基于环信)
先上效果图: 屏幕快照 2015-07-30 下午5.19.46.png 说说需求:开发一个可以进行即时视频聊天软件. 最近比较忙,考完试回到公司就要做这个即时通信demo.本来是打算用xmpp协议来 ...
- MvcSiteMapProvider 自定义模板
MvcSiteMapProvider 介绍文字就省了,直接访问官方站点吧. 官方站点:https://github.com/maartenba/MvcSiteMapProvider 默认的模板文件 ...
- eclipse中tomcat内存溢出设置
Eclipse里启动Tomcat,配置内存大小 2009年12月11日 星期五 10:50 一般安装完eclipse之后,在安装目录下你应该可以看到有一个 eclipse.ini 文件,对了,就是在这 ...
- Python-Web框架之 - 利用SQLALchemy创建与数据库MySQL的连接, 详解用Flask时会遇到的一些大坑 !
经过这个小项目算是对Django与Flask这两个web框架有了新的认识 , Django本身的轮子非常齐全 , 套路也很固定 , 新手在接触Django框架时 , 不会陷入到处找轮子的大坑 ; 那么 ...
- 移动端调试技巧(禁止webviuew,inspect等)
如果由于某种原因(天朝FQ),不能支持google 的 inspect 调试 或者再想在某个APP里面调试你的页面,但是没有打开APP的webview ,也不能授权调试 在或者,Fider 可以拦截 ...
- py-oauth2包使用简记
接前两天线上项目py2升级py3的书,老廖的一个旧库snspy,他已经不维护了,用的api又比较久,不好升级,最后速度找了个OAuth库取代了它,由于时间紧张,直接在pypi上搜索了一下,找到这个支持 ...
- Java EE的未来
http://www.infoq.com/cn/articles/enterprise-Java-opinion 作为InfoQ下一年编辑关注点审核工作的一部分,我们挑选了Java作为深入探讨的主题. ...
- Ocelot中文文档-配置
这里有一个配置的列子.其中有两个配置块.一个ReRoutes数组和一个GlobalConfiguration.ReRoutes配置块是一些告诉Ocelot如何处理上游请求的对象.Globalconfi ...
- Linux 安装 MongoDB
一.下载 Linux:CentOS 7.3 64位 MongoDB:3.6.4 安装目录:/usr/local cd /usr/local wget https://fastdl.mongodb.or ...
- python都能做什么
一.python: Python具有丰富和强大的库.它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起.常见的一种应用情形是,使用Python快速生成程序的原型 ...