2016-07-03 6 views
1

を解凍するために、私は、このWebページの「詳細」タブをこすりするために書かれたコードのこの部分持っている:それは私に値誤差を与えるしかしhttps://www.whoscored.com/Regions/252/Tournaments/2/Seasons/5826/Stages/12496/TeamStatistics/England-Premier-League-2015-2016PythonのスクレイピングXHRはValueErrorをを返します:あまりにも多くの値は、教育目的のためにそう

を:アンパックする値が多すぎます。

私はまだかなり初心者レベルのPythonですので、私はそれがなぜ現れるのか理解できません。

import requests 


url = 'https://www.whoscored.com/Regions/252/Tournaments/2/Seasons/5826/Stages/12496/TeamStatistics/England-Premier-League-2015-2016' 

params = { 
'category:shots', 
'subcategory:zones', 
'statsAccumulationType:0', 
'timeOfTheGameStart:0', 
'timeOfTheGameEnd:5', 
'stageId:12496', 
'sortBy: Rating', 
'page: 1', 
'isCurrent: True' 
} 

headers = { 
     'User-Agent: Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36', 
     'X-Requested-With: XMLHttpRequest', 
     'Host: www.whoscored.com' 
     'Referer: https://www.whoscored.com/Regions/252/Tournaments/2/Seasons/5826/Stages/12496/TeamStatistics/England-Premier-League-2015-2016',} 

response = requests.get(url, params=params, headers=headers) 

stats = response.json() 
print stats 

答えて

1

paramsは現在実際には文字列のセットです。キーと値のペアを生成し、代わりに辞書を作成するための文字列を打破:

params = { 
    'category': 'shots', 
    'subcategory': 'zones', 
    'statsAccumulationType': '0', 
    'timeOfTheGameStart': '0', 
    'timeOfTheGameEnd': '5', 
    'stageId': '12496', 
    'sortBy': 'Rating', 
    'page': '1', 
    'isCurrent': 'True' 
} 

同じことがheadersのために行く:

headers = { 
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36', 
    'X-Requested-With': 'XMLHttpRequest', 
    'Host': 'www.whoscored.com', 
    'Referer': 'https://www.whoscored.com/Regions/252/Tournaments/2/Seasons/5826/Stages/12496/TeamStatistics/England-Premier-League-2015-2016' 
} 

これは、エラーを修正するために役立つだろうが、あなたはJSONを取得しないだろう応答はそのままです。あなたが使用しているurlが正しいものではないと思われる場合は、再確認してください。また

、あなたはChromeデベロッパーツールで観測要求をシミュレートしたい場合 - 次の手順を実行します。

  • 右の特定の要求
  • をクリック
  • 行く「のcURLとしてコピー」を選択http://curl.trillworks.com/に変換し、Pythonに変換する+要求コード
+0

ありがとう、私は再び何か愚かなことを忘れていた。 しかし、今私は得ています ValueError:JSONオブジェクトはデコードできませんでした。 私は別のURLを試しました。 – Kyriediculous

+0

編集で説明した方法で試しましたが、まだ同じエラーが発生しています – Kyriediculous

+0

これでJSONであることを示すレスポンス200が表示されます。 私はvariable = response.json()を実行するたびに、「No JSONオブジェクトをデコードできます」というメッセージが表示されます。 – Kyriediculous

関連する問題