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

使用Python Requests访问链接遇403错误,浏览器可正常打开的解决咨询

问题描述

我能在浏览器正常打开链接:

https://www.hapag-lloyd.com/en/online-business/track/track-by-container-solution.html?container=HLBU9517848

但用Python的requests库发起请求时,返回<Response [403]>。查看响应文本,发现包含CAPTCHA验证相关内容,说明网站的Cloudflare安全防护机制触发了验证,需要完成CAPTCHA才能访问:

<p class="display-later" style="display:none;">Please complete 
following CAPTCHA to get access to the Hapag-Lloyd's website.</p>
<p><form id="challenge-form" class="challenge-form managed-form" action="/en/online-business/track/track-by-container-solution.html?container=HLBU9517848&amp;__cf_chl_f_tk=ubmYYNVSxf5CVa3wq85K19Cb6kHn.6V14MgS52EOPpU-1658760627-0-gaNycGzNB70" method="POST" enctype="application/x-www-form-urlencoded">
    <div id='cf-please-wait'>
      <div id='spinner'>
        <div id="cf-bubbles">
            <div class="bubbles"></div>
            <div class="bubbles"></div>
            <div class="bubbles"></div>
        </div>
      </div>
      <p data-translate="please_wait" id="cf-spinner-please-wait">Please stand by, while we are checking your browser...</p>  
      <p data-translate="redirecting" id="cf-spinner-redirecting" style="display:none">Redirecting...</p>
      </div>
最小复现示例
url = "https://www.hapag-lloyd.com/en/online-business/track/track-by-container-solution.html?container=HLBU9517848"

headers = {"User-Agent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36'}

container_data = requests.get(url, proxies={"http":"http://95.66.151.101:8080"}, headers=headers)

print(container_data)
解决方案

针对Cloudflare的CAPTCHA防护,常规Header修改无效,可尝试以下几种方案:

1. 使用无头浏览器模拟真实访问

这类工具能完整模拟浏览器环境,执行JavaScript,通过Cloudflare的浏览器检测,甚至可以处理CAPTCHA:

  • Selenium:配合ChromeDriver或GeckoDriver,打开真实浏览器(或无头模式)访问目标页面,少量请求可手动完成CAPTCHA,批量请求可结合第三方识别服务。
    示例代码:
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    options = Options()
    options.add_argument("--headless=new")
    options.add_argument("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")
    
    driver = webdriver.Chrome(options=options)
    driver.get("https://www.hapag-lloyd.com/en/online-business/track/track-by-container-solution.html?container=HLBU9517848")
    
    # 此处可添加等待CAPTCHA完成的逻辑,手动或自动
    page_source = driver.page_source
    print(page_source)
    
    driver.quit()
    
  • Playwright:比Selenium更轻量化,自带浏览器驱动,对Cloudflare的兼容性更好。

2. 使用Cloudflare专用绕过库

cfscrape库能模拟浏览器的JavaScript计算过程,绕过Cloudflare的基础验证(注意:若触发CAPTCHA,该库无法自动处理,需结合识别服务):

  • 安装:pip install cfscrape
  • 示例代码:
    import cfscrape
    
    scraper = cfscrape.create_scraper()
    url = "https://www.hapag-lloyd.com/en/online-business/track/track-by-container-solution.html?container=HLBU9517848"
    response = scraper.get(url)
    print(response.status_code)
    print(response.text)
    

3. 借助付费服务

  • 带Cloudflare绕过的代理:部分代理服务商提供专门的反爬代理,能自动处理Cloudflare验证和CAPTCHA,适合批量请求场景。
  • CAPTCHA识别服务:如自动识别图片验证码、滑块验证的服务,可集成到爬虫中自动提交验证结果。

4. 优先使用官方API

先查询Hapag-Lloyd的开发者文档,确认是否有公开的集装箱查询API。使用官方API不仅合法稳定,还能避免反爬问题,是最优解。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 22:54:20