def __fetch_content(self): response = request.urlopen(
来源:13-12 案例总结

HuffLeo
2017-12-22
def __fetch_content(self):
response = request.urlopen('http://www.lianjia.com/')
htmls = response.read()
htmls = str(htmls,encoding='utf-8')
print(htmls)
老师同样的代码为什么有的网站不能抓取,会报错
报错内容:
urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:777)>
4回答
-
遇到了和你类似的问题,查到一个网页解决了这个问题,大致的原因是:Python 升级到 2.7.9 之后引入了一个新特性,当使用urllib.urlopen打开一个 https 链接时,会验证一次 SSL 证书。
而当目标网站使用的是自签名的证书时就会抛出一个 urllib.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)> 的错误消息。解决方法是:
context = ssl._create_unverified_context()
r = request.urlopen(Spider.url, context=context)
记得import ssl
原文链接:http://blog.csdn.net/moonhillcity/article/details/52767999
112017-12-26 -
7七月
2017-12-25
什么操作系统?mac?linux。这个一般在windows下没有这个问题,缺少了ssl的支持,看看是不是需要装一个openssl的库。
00 -
HuffLeo
提问者
2017-12-23
不是这个问题。
00 -
veryvvyy
2017-12-23
certificate verify failed 不是说明你的证书认证失败吗?也就是说你爬的网站不让你爬啊。
你想想看,链家的房源信息多宝贵啊,随便让你爬了他们靠什么吃饭啊。
00
相似问题