python爬虫(四)cookie模拟登录和反反爬案例

处理不被信任证书的网站

SSL证书:数字证书的一种,配置在服务器上面的,类似于驾驶证、护照和营业执照的电子副本。因为配置在服务器上,也称为SSL服务器证书。

SSL证书的特点:遵循了SSL协议,由收信任的数字证书颁发机构CA,验证身份之后颁发的证书,同时具有服务器身份验证和数据传输加密功能。
SSL证书的发展历程:
为啥网站会出现SSL证书? 具有服务器身份验证和数据传输加密的功能,https是http的安全版本,是在http的基础上添加的安全阶层(ssl层),https在传输的时候,就有ssl加密和解密的过程,能够保证数据传送的安全性,大多数网站用的都是https,http用的就比较少了,打开http开头的网站会提示不安全。https = http + ssl
http升级成https时,需要ssl证书,一旦有了ssl证书后,数据传输的安全有了保证,就成了https。ssl证书得到有两种方法:一是自己做,大型的公司有专门的团队去做;二是找专业的第三方平台去做。自己做的话需要找专门的机构去认证,否则不会被信任。 有些网站不被信任可能就访问不了,但是像税务网站,一般没有需求的人也不会去访问,某种程度上数据更安全了。

测试网站:
https://inv-veri.chinatax.gov.cn/
打开后左侧显示“不安全”三个字,但是也是https开头的,是因为所做的证书没有去认证。

需求:向一个不被SSl信任的网站发起请求 爬取数据
目标url:https://inv-veri.chinatax.gov.cn/
​如果单纯的用以前的requests模块就爬取不了该种网站,requests模块在向网站发起请求的时候会自动的检测数字证书,发现数字证书是不被信任的,就会抛出异常。代码如下:

import requests
# 目标url
url = 'https://inv-veri.chinatax.gov.cn/'
headers = {
   
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36 Edg/92.0.902.62'
}
res = requests.get(url, headers=headers)
print(res.text)

返回的结果

    raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='inv-veri.chinatax.gov.cn', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)'),))

可以看到返回的是SSLError,证书错误。

如果想正常爬取,那就不让re

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值