2
我有一個奇怪的問題,我得到一個400客戶端錯誤:對我從未打開的URL有不良請求,但如果我用我的瀏覽器打開相同的網址,然後關閉它,我突然能夠通過請求訪問它。Python請求客戶端錯誤:錯誤的請求,但在瀏覽器打開網站後有效
這裏是我的代碼:
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
如果我訪問該網站上的瀏覽器之前運行這個我收到此錯誤:
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
但我參觀鍍鉻的URL,然後之後運行它又一次得到了我期待的清單。
我的第一個想法是,也許NBA阻止了某些類型的請求,可能是這樣嗎?
感謝您的幫助。
這工作,非常感謝你。你能解釋爲什麼這有效嗎? – trentray03
@ trentray03,有時你需要在提出請求時複製瀏覽器,我想因爲你先在瀏覽器中訪問過,根據你的IP存儲了信息,所以請求在以後工作得很好。 –