网页爬取遇HTTPError 400错误:请求icriq公司详情页失败
解决ICRIQ网站详情页HTTP 400错误的方案
补全请求头信息
网站通常会验证请求合法性,缺失关键请求头会触发400错误。必须添加User-Agent模拟浏览器访问,同时带上Referer字段(设为搜索页面URL),让服务器认为请求来自站内跳转。
示例请求头配置:headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36', 'Referer': 'https://www.icriq.com/fr/' }确保URL完整有效
检查获取到的详情页href是否为相对路径,如果是,需要拼接网站域名生成完整URL,比如:base_url = 'https://www.icriq.com' detail_href = '/pls/owa_rib/ribwaff1.afficher_profil?p_id_req=60354349&p_cle=NOWLSUZQKM' full_detail_url = base_url + detail_href维持会话一致性
搜索操作和详情页访问需要保持同一个会话,网站会通过Cookie跟踪会话状态。使用requests.Session()对象发起所有请求,确保会话Cookie持续有效:import requests from bs4 import BeautifulSoup session = requests.Session() # 先执行搜索请求,初始化会话 session.post(search_url, data=search_params, headers=headers) # 用同一个会话请求详情页 response = session.get(full_detail_url, headers=headers) soup = BeautifulSoup(response.text, 'html.parser')验证动态参数有效性
详情页URL中的p_cle是动态生成的会话绑定参数,不能复用旧的参数值。每次搜索后必须重新提取当前会话下的详情页链接,避免使用已失效的参数。
内容的提问来源于stack exchange,提问作者Mohamed Hedeya
相关产品推荐
相关产品推荐

