You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python/BeautifulSoup爬取SNCF网站遇403响应问题求助

爬取SNCF官网遇到403禁止访问问题

我正在学习Python网页爬取,尝试编写脚本访问法国铁路公司SNCF的官网,提交表单后获取指定日期、路线的最低票价,但第一步就遇到阻碍。

我的代码如下:

from bs4 import BeautifulSoup
from requests_html import HTMLSession
from urllib.parse import urljoin

session = HTMLSession()
#url = "http://sncf-connect.com"
url = "https://www.sncf-connect.com/app/home/search"

res = session.get(url)

请求返回 <Response [403]>,res.html.html 的返回内容为:

<html><head><title>sncf-connect.com</title><style>#cmsg{animation: A 1.5s;}@keyframes A{0%{opacity:0;}99%{opacity:0;}100%{opacity:1;}}</style></head><body style="margin:0"><p id="cmsg">Please enable JS and disable any ad blocker</p><script data-cfasync="false">var dd={'cid':'AHrlqAAAAAMAM3xGlPY0p-gAW6XdHw==','hsh':'746B7C2640FFCBD6D2BEC599D9FB5F','t':'fe','s':36834,'e':'bdb536cbcc367046d999ed157f25dabb9c0736edcf90e782144a0c6d36e69e3d','host':'geo.captcha-delivery.com'}</script><script data-cfasync="false" src="https://ct.captcha-delivery.com/c.js"></script></body></html>

我查阅了StackOverflow等在线资料,发现类似问题的常见解决方法是设置User-Agent,但在Chrome开发者工具中找不到该信息,希望能得到相关帮助或建议。


解决建议

  • 获取Chrome的User-Agent:打开Chrome按F12调出开发者工具,切换到「Network」标签页,刷新页面后点击任意一个请求,在右侧「Request Headers」中找到User-Agent字段,复制其完整内容。
  • 修改代码添加请求头:在session.get()中加入headers参数,示例如下:
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
    }
    res = session.get(url, headers=headers)
    
  • 处理JS渲染与验证码:返回内容显示网站要求启用JS并检测到验证码服务,requests_html支持JS渲染,可尝试在请求后添加res.html.render()等待页面加载,但仍可能触发验证码验证。
  • 先访问首页建立会话:建议先访问SNCF官网首页https://www.sncf-connect.com,获取网站设置的Cookie后,再发起搜索页面请求,保持会话连贯性。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 22:10:24