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

调用电影查询API发送POST请求时出现400 Bad Request错误求助

爬取巴西电影分级站点POST请求400错误的解决方法

问题分析

你的请求返回400 Bad Request,核心原因是请求体格式不符合API要求,同时可能缺少必要的请求头校验。

解决方案

1. 发送JSON格式的请求体

浏览器DevTools中显示的请求负载是JSON格式,但你用data参数发送的是表单编码格式(application/x-www-form-urlencoded),服务器无法正确解析。改用json参数自动处理JSON格式及对应的Content-Type头:

import requests

payload = {'tituloBr': 'shrek'}
headers = {
    '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',
    'Referer': 'https://classindportal.mj.gov.br/consulta-filmes'
}

response = requests.post(
    'https://classindportal.mj.gov.br/api/solicitacao-classificacao-consultas/list',
    json=payload,
    headers=headers
)

print(response.status_code)
print(response.json())

2. 添加必要的请求头

多数站点会校验User-Agent(避免被识别为爬虫)和Referer(验证请求来源),必须模拟浏览器的请求头信息。如果需要更严格的模拟,可以从DevTools中复制完整的请求头,去掉不必要的字段后添加到代码中。

3. 处理CSRF Token(若需要)

部分站点会要求CSRF Token验证,需先访问搜索页面获取Cookie中的Token,再在请求头中携带:

import requests

# 使用Session维持会话,自动处理Cookie
session = requests.Session()
session.get('https://classindportal.mj.gov.br/consulta-filmes')

payload = {'tituloBr': 'shrek'}
headers = {
    'Content-Type': 'application/json',
    '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',
    'Referer': 'https://classindportal.mj.gov.br/consulta-filmes'
}

# 从Cookie中提取CSRF Token(根据站点实际字段调整)
csrf_token = session.cookies.get('XSRF-TOKEN')
if csrf_token:
    headers['X-XSRF-TOKEN'] = csrf_token

response = session.post(
    'https://classindportal.mj.gov.br/api/solicitacao-classificacao-consultas/list',
    json=payload,
    headers=headers
)

print(response.status_code)
print(response.json())

关键说明

  • 优先使用json参数而非data参数发送请求体,确保格式与浏览器请求一致。
  • 始终模拟浏览器的请求头,避免被站点的反爬机制拦截。
  • 若仍有错误,可对比DevTools中的请求详情(包括所有请求头、Cookie),逐步调整代码中的参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 08:32:14