为了账号安全,请及时绑定邮箱和手机立即绑定

玩砸了,出错了~

有没有和我遇到一样问题的?求助!python 3.7 

我就是按照老师的步骤,个别语句按Python3修改了一下。只输出了一条,就报错了(报错内容太长了,没全粘过来):

urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:864)>

目测问题出在这里:response = urllib.request.urlopen(url) 

因为在此之后加入了语句:print(response.getcode())   哎嘿,没有返回数值 ~

使用以下入口地址,然,并没有用: 

https://baike.baidu.com/item/Python/407313?fr=aladdin 

https://baike.baidu.com/item/Python/407313 

在之前的课程里,使用urllib模块,打开百度主页是没有问题的~

正在回答

1 回答

找到了解决办法,链接:http://bookshadow.com/weblog/2015/04/22/sae-python-weibo-sdk-certificate-verify-failed/

Python 升级到 2.7.9 之后引入了一个新特性,当使用urllib.urlopen打开一个 https 链接时,会验证一次 SSL 证书。而当目标网站使用的是自签名的证书时就会抛出本人遇到的错误。

已验证链接中第一种方案有效:

import urllib.request
import string
import ssl

class HtmlDownloader(object):

    def download(self, url):
        if url is None:
            return
            
        context = ssl._create_unverified_context()
        response = urllib.request.urlopen(url, context=context)

        if response.getcode() != 200:
            return

        return str(response.read(), encoding='utf-8')
2 回复 有任何疑惑可以回复我~
#1

绝洛JueLuo

感谢分享!
2018-10-14 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Python开发简单爬虫
  • 参与学习       227670    人
  • 解答问题       1219    个

本教程带您解开python爬虫这门神奇技术的面纱

进入课程

玩砸了,出错了~

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信