Python中Urllib、requests、Scrapy验证方式记录

  • A+
所属分类:腾讯云运维技术

这里记得我们在实际使用Python中Urllib、requests、Scrapy验证方式记录。如果有需要的可以进行参考。

Urllib部分

解决方法1:

使用ssl创建未经验证的上下文,在urlopen中传入上下文参数

import ssl
import urllib2

context = ssl._create_unverified_context()
print urllib2.urlopen("https://cvm.tencentcloudapi.com/", context=context).read()

解决方法2:

导入ssl时关闭证书验证

import ssl
import urllib2

ssl._create_default_https_context = ssl._create_unverified_context
print urllib2.urlopen("https://cvm.tencentcloudapi.com/").read()

python3的话,适当修改一下urllib就可以了。

requests部分

解决方法1:

通过 verify 指定证书,表示相信此证书;也可以用 verify=False,表示不验证服务器端的证书。

#!/bin/env python
import requests
url = "https://cvm.tencentcloudapi.com"
ret = requests.get(url, verify="/Test/ssl_address/api.com.crt")
print ret.status_code

解决方法2:

设置环境变量 REQUESTS_CA_BUNDLE:

export REQUESTS_CA_BUNDLE=/tmp/ssl/api.com.crt

然后使用 request 访问。

#!/bin/env python
import requests
url = "https://cvm.tencentcloudapi.com"
ret = requests.get(url)
print ret.status_code

Scrapy部分

解决方法:

pip uninstall scrapy
pip uninstall pyopenssl
pip install pyopenssl
pip install scrapy

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: