You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

网页爬取问题:列表获取障碍与SSL证书验证失败错误

解决爬取雷诺经销商页面时的SSL证书验证失败问题

嘿,我看到你在爬取https://www.renault-retail-group.fr/concessions-renault.html获取维修商列表时,碰到了SSL: CERTIFICATE_VERIFY_FAILED的错误,这在爬取部分网站时确实很常见。咱们针对你用到的工具,分别给出解决方案:

一、针对requests库的解决办法

最直接的临时方案是禁用SSL证书验证,但要注意这会降低请求的安全性,适合测试场景使用:

import requests
from bs4 import BeautifulSoup
from requests.packages.urllib3.exceptions import InsecureRequestWarning

# 关闭不安全请求的警告(避免控制台被警告信息刷屏)
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

url = "https://www.renault-retail-group.fr/concessions-renault.html"
# 添加verify=False参数跳过SSL验证
response = requests.get(url, verify=False)

# 继续用BeautifulSoup解析页面
soup = BeautifulSoup(response.text, "html.parser")
# 这里可以写你的解析逻辑,比如提取维修商信息

如果是生产环境,更安全的做法是手动指定网站的SSL证书路径(需要先下载对应证书),把verify=False替换为证书文件的路径即可。

二、针对selenium库的解决办法

因为你也导入了selenium,如果你打算用浏览器渲染的方式爬取,可以配置浏览器忽略SSL错误:

1. Chrome浏览器配置

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from bs4 import BeautifulSoup

chrome_options = Options()
# 添加忽略SSL证书错误的参数
chrome_options.add_argument('--ignore-certificate-errors')
chrome_options.add_argument('--ignore-ssl-errors')

# 初始化浏览器并访问目标页面
driver = webdriver.Chrome(options=chrome_options)
driver.get("https://www.renault-retail-group.fr/concessions-renault.html")

# 获取页面源码进行解析
soup = BeautifulSoup(driver.page_source, "html.parser")
# 编写你的维修商信息提取逻辑

# 记得用完关闭浏览器
driver.quit()

2. Firefox浏览器配置

from selenium import webdriver
from selenium.webdriver.firefox.options import Options
from bs4 import BeautifulSoup

firefox_options = Options()
# 设置Firefox忽略SSL验证的偏好
firefox_options.set_preference("security.ssl.check_all_certificates", False)
firefox_options.set_preference("security.ssl.enable_ocsp_stapling", False)

driver = webdriver.Firefox(options=firefox_options)
driver.get("https://www.renault-retail-group.fr/concessions-renault.html")

# 解析页面逻辑...

driver.quit()

额外小贴士

  • 出现这个错误的原因通常是网站的SSL证书配置不规范,或者本地系统的根证书库过期,跳过验证是最快速的临时解决方案。
  • 爬取网站时记得遵守网站的robots.txt规则,不要频繁发送请求,可以添加time.sleep()设置延迟,避免被IP封禁。
  • 如果后续碰到反爬机制(比如需要JS渲染才能加载数据),selenium的浏览器渲染方式会比requests更可靠。

内容的提问来源于stack exchange,提问作者Julien Bourbon

火山引擎 最新活动