爬虫之ssh证书警告错误

Posted while True:just do it

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬虫之ssh证书警告错误相关的知识,希望对你有一定的参考价值。

错误信息:

错误信息如下:

requests.exceptions.SSLError: ("bad handshake: Error([(‘SSL routines‘, ‘tls_process_server_certificate‘, ‘certificate verify failed‘)],)",)

 错误分析:  

ssh证书是美国网景公司发放的一个安全认证证书,有了这个证书即可证明网站是安全的,但是认证是需要收费的,

所以一些网站就会自己仿造证书,这个时候浏览器就会给予警告,而我们爬虫就爬不到想要的信息

解决办法:

方式一:

加上一个参数:verify=证书路径,或verify=False

#方法一
import requests from bs4 import BeautifulSoup url = ‘https://inv-veri.chinatax.gov.cn/‘ req = requests.get(url,verify=False) req.encoding = ‘utf-8‘ soup = BeautifulSoup(req.text,‘lxml‘) print(soup)

方式二:

ssl._create_default_https_context = ssl._create_unverified_context#注意用了这个就不能用requests了,得用urllib2.Request

  完整代码如下:

# 方法二(推荐):

import ssl
import urllib2

ssl._create_default_https_context = ssl._create_unverified_context
req = urllib2.Request(‘https://inv-veri.chinatax.gov.cn/‘)
data = urllib2.urlopen(req).read()
print(data)

方式三:

我们可以通过设置忽略警告的方式来屏蔽这个警告:

import requests
from requests.packages import urllib3

urllib3.disable_warnings()
response = requests.get(‘https://www.12306.cn‘, verify=False)
print(response.status_code)

或者通过捕获警告到日志的方式忽略警告:

import logging
import requests
logging.captureWarnings(True)
response = requests.get(‘https://www.12306.cn‘, verify=False)
print(response.status_code)

  

以上是关于爬虫之ssh证书警告错误的主要内容,如果未能解决你的问题,请参考以下文章

配置警告中不存在此类片段

让git忽略SSL证书错误。及push项目时消除警告

Java爬虫--Https绕过证书

Android 应用程序不会启动,也不会列出错误/警告。使用片段和问题似乎与 var args = ViewFragmentArgs

python爬虫之urllib_get

Git复习之远程仓库注册GitHub账号SSH警告