使用Python的请求库时{400}请求合法网址

时间:2016-03-02 20:36:45

标签: python python-requests http-status-code-400

我尝试使用Python的Requests库从request.get()的调用中获取JSON对象:

import requests

url = 'http://stats.nba.com/stats/boxscoretraditionalv2'+\
'?EndPeriod=10&EndRange=28800&GameID=0021500893&RangeType=0'+\
'&Season=2015-16&SeasonType=Regular+Season&StartPeriod=1'+\
'&StartRange=0'

# is the auth necessary?
response = requests.get(url, auth=('user', 'pass'))

我得到以下例外:

Traceback (most recent call last):
  File "sample.py", line 22, in <module>
    response.raise_for_status() # raise exception if invalid response
  File "/Library/Python/2.7/site-packages/requests/models.py", line 840, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 400 Client Error: Bad Request for url: http://stats.nba.com/stats/boxscoretraditionalv2?EndPeriod=10&EndRange=28800&GameID=0021500893&RangeType=0&Season=2015-16&SeasonType=Regular+Season&StartPeriod=1&StartRange=0

为了解决这个问题,我需要做什么?该链接有效 - 它只是呈现JSON,如果通过Chrome查看,则返回200 OK。

1 个答案:

答案 0 :(得分:0)

为您的请求添加标题:

C#

NBA.com的管理员决定在没有看起来像普通浏览器的用户代理的情况下向用户发放HTTP 400(可能是为了减少抓取)。