使用Requests爬虫时如何访问网站证书?解决Python 3 SSLError问题
解决Requests爬取esaj.tjsp.jus.br时的SSLError问题
遇到这个SSL错误,通常是因为Requests无法验证目标网站的SSL证书导致的。下面给你几种可行的解决办法,按安全推荐程度排序:
1. 更新CA证书存储(最安全推荐)
有时候本地系统的CA证书库过时,导致无法识别网站的合法证书。你可以用certifi库提供的最新CA证书来解决:
首先安装certifi:
pip install certifi
然后修改你的代码,指定使用certifi的证书:
from bs4 import BeautifulSoup import requests import certifi headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36' } res = requests.get( 'https://esaj.tjsp.jus.br/cposg/search.do?conversationId=&paginaConsulta=1&localPesquisa.cdLocal=-1&cbPesquisa=NMPARTE&tipoNuProcesso=UNIFICADO&dePesquisa=Alex+Spinelli+Manente&chNmCompleto=true&uuidCaptcha=', headers=headers, verify=certifi.where() )
2. 手动指定网站证书
如果你想更精准,也可以直接导出目标网站的证书,让Requests用它来验证:
- 打开浏览器访问目标网站,点击地址栏的锁形图标 → 查看证书 → 导出证书为PEM格式(注意选择Base64编码的X.509格式)
- 把导出的证书文件放到你的项目目录里,然后在代码里指定路径:
from bs4 import BeautifulSoup import requests headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36' } res = requests.get( 'https://esaj.tjsp.jus.br/cposg/search.do?conversationId=&paginaConsulta=1&localPesquisa.cdLocal=-1&cbPesquisa=NMPARTE&tipoNuProcesso=UNIFICADO&dePesquisa=Alex+Spinelli+Manente&chNmCompleto=true&uuidCaptcha=', headers=headers, verify='./esaj_certificate.pem' # 替换成你的证书文件路径 )
3. 临时跳过证书验证(仅测试用,不推荐生产环境)
如果你只是临时测试,不想折腾证书,可以直接关闭SSL验证,但这会带来安全风险(可能遭遇中间人攻击):
from bs4 import BeautifulSoup import requests from requests.packages.urllib3.exceptions import InsecureRequestWarning # 关闭不安全请求的警告 requests.packages.urllib3.disable_warnings(InsecureRequestWarning) headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36' } res = requests.get( 'https://esaj.tjsp.jus.br/cposg/search.do?conversationId=&paginaConsulta=1&localPesquisa.cdLocal=-1&cbPesquisa=NMPARTE&tipoNuProcesso=UNIFICADO&dePesquisa=Alex+Spinelli+Manente&chNmCompleto=true&uuidCaptcha=', headers=headers, verify=False )
另外提一句:很多政府网站有反爬机制,加上User-Agent模拟浏览器请求,能减少被拦截的概率,上面的代码里都加了这个配置。
内容的提问来源于stack exchange,提问作者Reinaldo Chaves
相关产品推荐
相关产品推荐

