我正在使用以下代码来模仿和XHR请求,并且我得到一个xpath错误,即生成的URL和参数无效,尽管它们看起来都很好:
import json
import requests
import jsonobject
import simplejson
url = 'http://www.whoscored.com/StatisticsFeed/1/GetPlayerStatistics'
params = {
'category': 'shots',
'subcategory': 'situations',
'statsAccumulationType': '0',
'isCurrent': 'true',
'playerId': '',
'teamIds': '',
'matchId': '',
'stageId': '9155',
'tournamentOptions': '2',
'sortBy': 'Rating',
'sortAscending': '',
'age': '',
'ageComparisonType': '',
'appearances': '',
'appearancesComparisonType': '0',
'field': '',
'nationality': '',
'positionOptions': '%27FW%27,%27AML%27,%27AMC%27,%27AMR%27,%27ML%27,%27MC%27,%27MR%27,%27DMC%27,%27DL%27,%27DC%27,%27DR%27,%27GK%27,%27Sub%27',
'timeOfTheGameEnd': '5',
'timeOfTheGameStart': '0',
'isMinApp': '',
'page': '1',
'includeZeroValues': '',
'numberOfPlayersToPick': '10'
}
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36',
'X-Requested-With': 'XMLHttpRequest',
'Host': 'www.whoscored.com',
'Referer': 'http://www.whoscored.com/'}
responser = requests.get(url, params=params, headers=headers)
print responser.status_code
print responser.url
responser = responser.json()
print responser
使用开发人员工具,我抓住了xhr请求组成的屏幕截图,如下图所示:
任何人都可以看到我的代码明显错误吗?即使只是一个错字?
由于
答案 0 :(得分:1)
这最终对我有用:
import json
import requests
url = 'http://www.whoscored.com/StatisticsFeed/1/GetPlayerStatistics'
params = {
'category': 'shots',
'subcategory': 'situations',
'statsAccumulationType': '0',
'isCurrent': 'true',
'playerId': '',
'teamIds': '',
'matchId': '',
'stageId': '9155',
'tournamentOptions': '2',
'sortBy': 'Rating',
'sortAscending': '',
'age': '',
'ageComparisonType': '',
'appearances': '',
'appearancesComparisonType': '0',
'field': '',
'nationality': '',
'positionOptions': "'FW','AML','AMC','AMR','ML','MC','MR','DMC','DL','DC','DR','GK','Sub'",
'timeOfTheGameEnd': '5',
'timeOfTheGameStart': '0',
'isMinApp': '',
'page': '1',
'includeZeroValues': '',
'numberOfPlayersToPick': '10'
}
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36',
'X-Requested-With': 'XMLHttpRequest',
'Host': 'www.whoscored.com',
'Referer': 'http://www.whoscored.com/'}
responser = requests.get(url, params=params, headers=headers)
print responser.status_code
print responser.url
responser = responser.json()
print responser
答案 1 :(得分:0)
根据您的评论,您获得的错误网址为http://www.whoscored.com/Error.html?aspxerrorpath=/StatisticsFeed/1/GetPlayerStatistics%27
该错误页面的内容说:
我们目前无法回复您,但我们很快就会回复。
请尽快再次查看我们,感谢您的耐心等待。
WhoScored.com
当我测试你的代码时,我得到了同样的错误。当我将相同的URL粘贴到浏览器中时,我得到了同样的错误。
该错误消息中没有关于xpath的内容。问题似乎是服务器暂时无法正常工作。如果是这样,您的代码中无法解决问题。