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

如何使用Python脚本调用requests模块实现Magento账户登录

可按以下步骤排查调整:

  • 补全BeautifulSoup初始化逻辑
    你当前代码直接调用soup.find但未将首页请求返回的HTML内容解析为Bs4对象,会导致form_key取值错误,需先导入依赖并完成解析:
    from bs4 import BeautifulSoup
    # 放在html_data请求完成之后
    soup = BeautifulSoup(html_data.text, 'html.parser')
    
  • 补充完整请求头参数
    Magento登录接口会校验请求头合法性,必须包含以下字段:
    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://<redacted.tld>/en/customer/account/login/',
        'Content-Type': 'application/x-www-form-urlencoded',
        'Origin': 'https://<redacted.tld>'
    }
    
  • 调整form_key获取地址
    部分Magento站点首页生成的form_key和登录接口不通用,建议将首次GET请求的地址改为登录页地址,不要从首页取form_key:
    login_page_url = 'https://<redacted.tld>/en/customer/account/login/'
    html_data = s.get(login_page_url, headers=headers, timeout=(30, 30), verify=dst_verify_ssl)
    
  • 校验请求返回结果定位问题
    登录请求完成后打印返回内容,可直接定位失败原因:
    print(login_req.status_code)
    print(login_req.text)
    # 可搜索返回内容中是否存在"form_key is invalid"、"Invalid login or password"、"captcha"等关键字
    
  • 修正地址拼接逻辑
    避免手动拼接地址出现双斜杠错误,可使用urljoin处理:
    from urllib.parse import urljoin
    login_post_url = urljoin(l_url, l_route)
    login_req = s.post(login_post_url, headers=headers, data=login_payload)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 10:45:03