gpt4 book ai didi

Python GET 中的请求错误,但 wget 和curl 可以工作

转载 作者:行者123 更新时间:2023-12-01 04:09:43 26 4
gpt4 key购买 nike

我尝试使用 requests 在 python 中执行 get 请求,但收到 400 bad request 错误。但是,当我在同一个 url 上执行 wget 或 curl 时,它会起作用。这是我的代码:

daily_scoreboard_url = 'http://stats.nba.com/stats/scoreboardV2?DayOffset=0&LeagueID=00&gameDate=01/12/2016'
scoreboard_response = requests.get(daily_scoreboard_url)
scoreboard_response.raise_for_status()

但是,当我尝试类似的事情时

curl 'http://stats.nba.com/stats/scoreboardV2?DayOffset=0&LeagueID=00&gameDate=01/12/2016'
wget 'http://stats.nba.com/stats/scoreboardV2?DayOffset=0&LeagueID=00&gameDate=01/12/2016'

它有效。我还尝试使用从 stats.nba.com 获取其他内容的 get 请求,并且成功了。

teamslist_url = 'http://stats.nba.com/stats/leaguedashteamstats?Conference=&DateFrom=&DateTo=&Division=&GameScope=&GameSegment=&LastNGames=0&LeagueID=00&Location=&MeasureType=Base&Month=0&OpponentTeamID=0&Outcome=&PORound=0&PaceAdjust=N&PerMode=PerGame&Period=0&PlayerExperience=&PlayerPosition=&PlusMinus=N&Rank=N&Season=2015-16&SeasonSegment=&SeasonType=Regular+Season&ShotClockRange=&StarterBench=&TeamID=0&VsConference=&VsDivision='
teamslist_response = requests.get(teamslist_url)
teamslist_response.raise_for_status()

最佳答案

您需要give requests a user-agent :

>>> headers = {'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36'}
>>> scoreboard_response = requests.get(daily_scoreboard_url, headers=headers)
>>> scoreboard_response
<Response [200]>

这是网站的错误,而不是 reuqests 的错误。有些网站需要用户代理来检查您是人类还是机器人/脚本。

但是,我们可以手动设置用户代理。在示例中,这是我的 Chrome 的用户代理。

关于Python GET 中的请求错误,但 wget 和curl 可以工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35115513/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com