Python solicita erro do cliente: solicitação incorreta, mas funciona após o site ser aberto no navegador
Estou tendo um problema estranho em que recebo um Erro de cliente 400: Solicitação incorreta em um URL que nunca abri, mas se eu abrir esse mesmo URL com o meu navegador e depois fechá-lo, de repente sou capaz de acesse-o com solicitações.
Aqui está o meu código:
import requests
url = 'http://stats.nba.com/stats/boxscore?GameID=0021500669&RangeType=0&StartPeriod=0&EndPeriod=0&StartRange=0&EndRange=0'
response = requests.get(url)
response.raise_for_status() # raise exception if invalid response
data = response.json()['resultSets'][0]['rowSet']
print data
Se eu executar isso antes de visitar o site em um navegador, recebo este erro:
Traceback (most recent call last):
File "stackOverflow.py", line 5, in <module>
response.raise_for_status() # raise exception if invalid response
File "C:\Python27\lib\site-packages\requests\models.py", line 851, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 400 Client Error: Bad Request
Mas depois que visito o URL no chrome e o executo novamente, recebo a lista que esperava.
Meu primeiro pensamento é que talvez a NBA esteja bloqueando alguns tipos de solicitações, poderia ser isso?
Obrigado pela ajuda.