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

Scrapy Splash Form Request报错方法为NONE,如何设置为POST请求?

解决Scrapy Splash中SplashFormRequest请求方法为NONE的问题

你当前的代码错误地将请求方法配置放在了args字典里,导致Splash识别不到请求方法。针对不同的POST场景,有两种修正方案:

场景1:提交标准表单数据

如果是要模拟HTML表单提交,直接使用SplashFormRequest的method参数指定POST方法,并用formdata传递表单数据:

yield SplashFormRequest(
    url,
    formdata={"key1": "value1", "key2": "value2"},  # 替换为你的实际表单字段和值
    method="POST",
    args={'wait': 5, 'cookies': cookie},
    headers=headers,
    callback=self.parse_listings,
    dont_filter=True
)

场景2:发送自定义请求体(如JSON)

如果需要发送非表单格式的POST请求(比如JSON数据),应该改用SplashRequest,直接指定method为POST并传入body参数:

yield SplashRequest(
    url,
    method="POST",
    body=body,  # 替换为你的自定义请求体,比如json.dumps(your_data)
    args={'wait': 5, 'cookies': cookie},
    headers=headers,
    callback=self.parse_listings,
    dont_filter=True
)

关键说明

  • SplashFormRequest是表单提交专用类,请求方法通过method参数直接设置,不需要在args里配置http_method。
  • 若手动构造请求体,必须使用SplashRequest而非SplashFormRequest,避免方法识别异常。
  • 原代码中args内的http_method和body配置都是错误写法,会导致Splash无法识别请求方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 10:08:14