通过 api 进行 Python 网络抓取

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

我尝试使用 Python 从网站(USTA)中删除信息,但失败并出现 403 响应。该网页不需要任何登录,我可以在浏览器中使用开发人员工具找到请求和响应,没有任何问题。例如,访问此[URL]时: (https://www.usta.com/en/home/play/player-search/profile.html#?uaid=2017185101) 有一个请求帖子:

https://www.usta.com/usta/api?type=playerInfo 

带标题:

dicData= {"selection":{"uaid":2017185101},"output":{"ratings":"true", "wtn":"true", "extendedProfile":"true"}}

我不确定为什么我的代码不起作用,但在此过程中通过浏览器添加了一个哈希标头项。关于解决这个问题有什么建议吗?这是我的代码:

import requests
strURL="https://www.usta.com/usta/api?type=playerInfo"
dicData= {"selection":{"uaid":2017185101},"output":{"ratings":"true", "wtn":"true", "extendedProfile":"true"}}
dicHead = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0", "Accept": "*/*", "Accept-Language": "en-US,en;q=0.5", "Content-Type": "application/json; charset=utf-8"}
r = requests.post(strURL, dicData, headers=dicHead)
print(r)
json python-3.x web-scraping post
1个回答
0
投票

我对下面的代码没有任何问题:

import requests

url = 'https://www.usta.com/usta/api?type=playerInfo'

headers = {
    'hash': '<YOUR_HASH>',
    'referer': 'https://www.usta.com/en/home/play/player-search/profile.html',
    'user-agent': '<YOUR_USER_AGENT>',
}

data = "{\"selection\":{\"uaid\":\"2017185101\"},\"output\":{\"ratings\":\"true\",\"extendedProfile\":\"true\",\"wtn\":\"true\"}}"

response = requests.post(url, headers=headers, data=data)

print(response.json())
© www.soinside.com 2019 - 2024. All rights reserved.