2017-06-01 6 views
1

私は、NBA STATS apiからplay by playをPythonリクエストパッケージを使用して引き出そうとしています。私はタイムアウトエラーに走っていたので、私はcURLで試しました。要求のタイムアウト、cURLはありません

は、ここで私が取得しようとしている単一のゲームの要求のためのURL:

http://stats.nba.com/stats/playbyplayv2?EndPeriod=10&GameID=0021500492&StartPeriod=1 

あなたは、このリンクに行くことができ、その目的の作品で、すべてのものを、それをチェックしてください。

私は、そのリンクだけにcURL要求を行い、タイムアウトしました。最終的には、要求ヘッダーをcURLパラメーターとして1つずつ挿入して機能させました。

curl -X GET -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" -H "User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:53.0) Gecko/20100101 Firefox/53.0" -H "Accept-Language: en-US,en;q=0.5" -H "Accept-Encoding: gzip, deflate" "http://stats.nba.com/stats/playbyplayv2?EndPeriod=10&GameID=0021500492&StartPeriod=1" 

はここに要求の私のクエリです:

pars = {'Accept-Encoding': 'gzip, deflate'\ , 'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:53.0) Gecko/20100101 Firefox/53.0'\ , 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'\ , 'Accept-Language':'en-US,en;q=0.5'} response = requests.get('http://stats.nba.com/stats/playbyplayv2?EndPeriod=10&GameID=0021500492&StartPeriod=1'\ , params=pars)

私はどちらかの要求を介しpythonでこの作業を取得、またはIような方法でのcURLでこれを行う方法を把握する必要があります(a)ループ内のファイル/ファイル名のテキストに基づいてGameID部分を記入し、(b)正しいディレクトリ(作業ディレクトリではない)にjsonとして保存することができます。

アイデア? urllibベースのソリューションはありますか?

答えて

2

パラメータとしてヘッダー情報を渡しています。ヘッダーを渡す必要があります。

import requests 

headers = {'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:53.0) 
Gecko/20100101 Firefox/53.0'} 

params = { 
    'EndPeriod': 10, 
    'GameID': '0021500492', 
    'StartPeriod': 1 
} 
r = requests.get("http://stats.nba.com/stats/playbyplayv2", params=params, 
headers=headers) 
print(r.json()) 

リクエストのparamsは、APIがパラメータリクエストを処理するためにパラメータ情報をAPIに渡すために使用されます。一方、ヘッダはあなたの要求を認証または解釈するために使用されます。

+0

ああ、意味があります。明確化のためにありがとう! – riders994

関連する問題