Docker部署FlareSolverr:Postman请求正常Python脚本报500错误
问题解决:FlareSolverr Python请求500错误
核心问题:请求格式不匹配。你虽然设置了
Content-Type: application/json,但用data=data传递参数时,requests会自动把字典编码成application/x-www-form-urlencoded格式,而FlareSolverr要求接收JSON格式的请求体,服务器解析失败就返回了500错误。修复后的代码:
import requests import time from bs4 import BeautifulSoup def get_parsed_page(url, delay=0.5): data = { "cmd": "request.get", "url": url, "maxTimeout": 60000 } headers = { "Content-Type": "application/json" } time.sleep(delay) # 改用json参数传递数据,requests会自动编码为JSON格式并适配请求头 response = requests.post("http://localhost:8191/v1", json=data, headers=headers) print(response) return BeautifulSoup(response.text, "lxml")
- 额外优化:原代码发起了两次重复的POST请求,既浪费资源又可能增加延迟,改成只请求一次并复用response对象即可。
内容的提问来源于stack exchange,提问作者user20766085
相关产品推荐
相关产品推荐

