Python爬取https证书的流程如下:
- 导入所需要的模块:requests、ssl、os。
import requests
import ssl
import os
- 创建SSL上下文:
ssl._create_default_https_context = ssl._create_default_https_context
- 发送HTTPS请求,并获取证书:
response = requests.get(' verify=True)
cert = response.headers['server']
- 将证书保存到本地文件:
cert_path = os.path.join(os.getcwd(), 'cert.pem')
with open(cert_path, 'w') as cert_file:
cert_file.write(cert)
- 验证证书:
ssl_context = ssl.create_default_context()
ssl_context.load_cert_chain(certfile=cert_path)
- 使用证书发送HTTPS请求:
response = requests.get(' verify=cert_path)
下面是整个流程的流程图:
flowchart TD
A[导入所需要的模块] --> B[创建SSL上下文]
B --> C[发送HTTPS请求,并获取证书]
C --> D[将证书保存到本地文件]
D --> E[验证证书]
E --> F[使用证书发送HTTPS请求]
下面是关系图:
erDiagram
SSL --> Requests : 使用requests模块发送HTTPS请求
SSL --> OS : 使用os模块保存证书到本地文件
SSL --> SSL : 使用ssl模块验证证书
解释每一步所需的代码和注释:
- 导入所需要的模块:
import requests
import ssl
import os
这里导入了requests、ssl和os模块。
- 创建SSL上下文:
ssl._create_default_https_context = ssl._create_default_https_context
这行代码是为了让Python使用默认的SSL上下文,以便正确处理HTTPS请求。
- 发送HTTPS请求,并获取证书:
response = requests.get(' verify=True)
cert = response.headers['server']
使用requests模块发送HTTPS请求,并将响应头中的服务器证书信息保存到cert变量中。
- 将证书保存到本地文件:
cert_path = os.path.join(os.getcwd(), 'cert.pem')
with open(cert_path, 'w') as cert_file:
cert_file.write(cert)
使用os模块将证书内容保存到本地文件cert.pem中。
- 验证证书:
ssl_context = ssl.create_default_context()
ssl_context.load_cert_chain(certfile=cert_path)
使用ssl模块创建默认的SSL上下文,并加载之前保存的证书文件。
- 使用证书发送HTTPS请求:
response = requests.get(' verify=cert_path)
使用requests模块发送HTTPS请求,并指定证书文件路径进行验证。
通过以上步骤,你就能够实现Python爬取https证书的功能了。