国外网页视频抓取软件(seleniumubuntu访问https的错误定位方法,让我几乎抓狂)

优采云 发布时间: 2021-11-20 15:04

  国外网页视频抓取软件(seleniumubuntu访问https的错误定位方法,让我几乎抓狂)

  我使用的系统是linux ubuntu。最近在学习爬虫的过程中遇到了一个疯狂的问题。当我尝试使用selenium和phantomjs登录网页时,Pythony一直提示selenium找不到元素,无论我怎么修改定位方法,总是出现No such element的错误,这让我几乎疯了. 经过多次确认和测试编写的代码,我在这几行代码中找到了程序中的错误。

  >>> from selenium import webdriver

>>> driver = webdriver.PhantomJS()

>>> driver.get("http://weibo.com")

  一般情况下,这三行极其简单的代码是不可能出错的,但事实告诉我,错误就在这里。

  >>> driver.page_source

''

  我试着查了一下网页的源代码,结果只有这些。什么是新浪主页?? ?

  >>> driver.get("asfgsdagshgdfh")

>>> driver.page_source

''

  接下来就试着胡乱输入一堆字符,查源码,还是这一堆东西,把我逼疯了。任何输入都是一样的。说明我安装的phantomjs浏览器无法访问网页。按照网上的方法重新安装最新的phantomojs后,结果还是一样。我来回重新安装了N次,它根本不起作用。折腾了一个下午,没有结果

  然后我没报,希望测试其他网页。百度和微博不可用,但可以访问新浪网。一开始以为可能是网页设置的问题。更改浏览器标题后,它仍然有效。无法访问,经过多次尝试和分类,我得出结论,这家伙实际上无法访问以https开头的URL,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 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线