Python爬取https证书的流程如下:

  1. 导入所需要的模块:requests、ssl、os。
import requests
import ssl
import os
  1. 创建SSL上下文:
ssl._create_default_https_context = ssl._create_default_https_context
  1. 发送HTTPS请求,并获取证书:
response = requests.get(' verify=True)
cert = response.headers['server']
  1. 将证书保存到本地文件:
cert_path = os.path.join(os.getcwd(), 'cert.pem')
with open(cert_path, 'w') as cert_file:
    cert_file.write(cert)
  1. 验证证书:
ssl_context = ssl.create_default_context()
ssl_context.load_cert_chain(certfile=cert_path)
  1. 使用证书发送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模块验证证书

解释每一步所需的代码和注释:

  1. 导入所需要的模块:
import requests
import ssl
import os

这里导入了requests、ssl和os模块。

  1. 创建SSL上下文:
ssl._create_default_https_context = ssl._create_default_https_context

这行代码是为了让Python使用默认的SSL上下文,以便正确处理HTTPS请求。

  1. 发送HTTPS请求,并获取证书:
response = requests.get(' verify=True)
cert = response.headers['server']

使用requests模块发送HTTPS请求,并将响应头中的服务器证书信息保存到cert变量中。

  1. 将证书保存到本地文件:
cert_path = os.path.join(os.getcwd(), 'cert.pem')
with open(cert_path, 'w') as cert_file:
    cert_file.write(cert)

使用os模块将证书内容保存到本地文件cert.pem中。

  1. 验证证书:
ssl_context = ssl.create_default_context()
ssl_context.load_cert_chain(certfile=cert_path)

使用ssl模块创建默认的SSL上下文,并加载之前保存的证书文件。

  1. 使用证书发送HTTPS请求:
response = requests.get(' verify=cert_path)

使用requests模块发送HTTPS请求,并指定证书文件路径进行验证。

通过以上步骤,你就能够实现Python爬取https证书的功能了。