专栏首页python前行者关于python中phantomjs无法访问网页的处理

关于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就可以解决。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 基于python的appium例子

    版权声明:如需转载本文章,请保留出处! https://blog.csdn.net/xc_zhou/article/details/89643551 ...

    周小董
  • driver匹配元素定位用法大全

    周小董
  • requests+selenium==requestium模块介绍

    有时,你可能会在网上实现一些自动化操作。比如抓取网站,进行应用测试,或在网上填表,但又不想使用API,这时自动化就变得很必要。Python提供了非常优秀的Req...

    周小董
  • django--ajax的使用,应用

    AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”。即使用Javascript语言与服...

    测试开发社区
  • Linux目录的作用【值得收藏】

    /dev:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱 mount /dev/cdrom /mnt /etc :...

    吴柯
  • 16.4 配置Tomcat监听80端口

    配置Tomcat监听80端口目录概要 vim /usr/local/tomcat/conf/server.xml Connector port="8080" p...

    运维小白
  • 线性DP总结(LIS,LCS,LCIS,最长子段和)

    做了一段时间的线性dp的题目是时候做一个总结 线性动态规划无非就是在一个数组上搞嘛, 首先看一个最简单的问题: 一,最长字段和 下面为状...

    ShenduCC
  • POJ-2096-Collecting Bugs

    ACM模版 描述 ? image.png image.png 代码 #include <iostream> #include <cstdio> using n...

    f_zyj
  • Java实现验证码功能实例

    Java如何实现验证码验证功能呢?日常生活中,验证码随处可见,他可以在一定程度上保护账号安全,那么他是怎么实现的呢?

    Java团长
  • 2017年中国高校发表SCI论文实力排行榜发布:你的大学排名第几?

    在刚刚过去的2017年,我国科研论文发表数量依然呈现出持续增长的趋势。据SCI数据库最新检索至少包含一位中国作者的论文结果显示,去年中国科研人员发表SCI论文的...

    WZEARW

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动