POST 请求返回 500

问题描述 投票:0回答:1

我正在尝试抓取

https://www.comedycellar.com/lineup/api/
,这是一个具有以下参数的 POST 请求:

action: "cc_get_shows"
json: {"date":"2024-01-10","venue":"newyork","type":"lineup"}

我的尝试如下:

import requests
lineup_url = 'https://www.comedycellar.com/lineup/api/'
json = {"date":"2024-01-08","venue":"newyork","type":"lineup", "action": "cc_get_shows"}
response = requests.post(lineup_url, json=json)

但是它返回状态代码 500。有什么想法让它发挥作用吗?作为参考,您可以访问 https://www.comedycellar.com/new-york-line-up/ 选择一个日期,然后在网络部分中您可以看到正在发出的 POST 请求。

python web-scraping post networking python-requests
1个回答
0
投票

您准备有效负载的方式是错误的。请尝试以下操作来获取所需的数据:

import json
import requests

lineup_url = 'https://www.comedycellar.com/lineup/api/'

headers = {
    'Accept': '*/*',
    'Referer': 'https://www.comedycellar.com/new-york-line-up/',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
}

payload = {
    'action': 'cc_get_shows',
    'json': json.dumps({"date":"2024-01-08","venue":"newyork","type":"lineup"})
}

response = requests.post(lineup_url, data=payload, headers=headers)
print(response.status_code)
print(response.json())
© www.soinside.com 2019 - 2024. All rights reserved.