我正在发出 POST 请求来抓取一些数据,但遇到了一个问题:系统错误无效。虽然我不确定该错误是由机器人管理系统引起的,但我确信我以后需要以某种方式绕过它。 这是 Insomnia 提供的代码,对有效负载进行了一些更改,使其成为有效的 JSON 文件。
import requests
import json
url = "https://beta.mozzartbet.com/betting/matches"
payload = {"date":"all_days","sort":"bytime","currentPage":1,"pageSize":15,"sportId":1,"competitionIds":[],"search":"","matchTypeId":0}
headers = {
"cookie": "i18next=sr; __cf_bm=ERfqyUmAAEIMgserE9_CDK0tuSarUuuGXYrOXLieVxI-1709153715-1.0-AXQEkA0Ts3r053i3CCTA12U9wzDt0KoNFx1PbnYOYXkOO576T%2BXYy%2BnPytIC5iBsT4PpTZho2mHNYAXwPBYoAvc%3D",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:123.0) Gecko/20100101 Firefox/123.0",
"Accept": "application/json, text/plain, */*",
"Accept-Language": "en-US,en;q=0.5",
"Accept-Encoding": "gzip, deflate, br",
"Content-Type": "application/json",
"medium": "WEB",
"Origin": "https://beta.mozzartbet.com",
"DNT": "1",
"Sec-GPC": "1",
"Connection": "keep-alive",
"Referer": "https://beta.mozzartbet.com/sr/kladjenje/sport/1?date=all_days&sort=bytime",
"Cookie": "i18next=sr; __cf_bm=Tj5T_TAyamtUovgI8yv0HsQbcFzP68ePbxFUHHPjONI-1709153370-1.0-AU/fwTxzJAV0XaeQB6xY3PElUQ8jD/PF6YoAOvV/wrZWNM0bjT33ibsiws/cHNi6j8F4M8a4h877uJiMVHLnxrg=",
"Sec-Fetch-Dest": "empty",
"Sec-Fetch-Mode": "cors",
"Sec-Fetch-Site": "same-origin",
"TE": "trailers"
}
response = requests.request("POST", url, json=payload, headers=headers)
print(response.json())
我读到 cookie 在生成后应在 30 分钟内有效,所以我不确定最初的错误是否与它有关。尽管如此,我无法在我的代码中找到错误所在。
尝试调试您的代码:
检查响应状态代码:打印响应状态代码 (response.status_code) 以查看服务器是否返回错误状态代码(例如,5xx 表示服务器错误,4xx 表示客户端错误)。
检查响应内容:打印响应内容(response.text),查看服务器是否返回错误信息或相关信息。
验证有效负载数据:仔细检查有效负载数据,确保其格式正确并包含有效值。您还可以尝试不同的有效负载数据组合,看看是否有所不同。
验证 URL:确保您向其发送请求的 URL 正确且可访问。