2016-01-31 2 views
1

Я пытаюсь выполнить запрос на получение в python с помощью запросов, но я получаю ошибку 400 ошибок. Однако, когда я делаю wget или завиваюсь на том же URL-адресе, он работает. Вот мой код:Python плохой запрос в GET, но wget и curl work

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, и он сработал.

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() 

ответ

2

Вам нужно 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.

+0

Спасибо, это сработало! Но из любопытства, почему мне не нужен агент-пользователь для другого URL-адреса, чтобы он работал? – birna

+1

@birna: Как я уже сказал, * Некоторые веб-сайты нуждаются в пользовательском агенте, чтобы проверить, являетесь ли вы человеком или ботом/скриптом. * Кажется, этот веб-сайт не разрешает запрос без агента-пользователя. Он был установлен владельцем веб-сайта. –

Смежные вопросы