我使用下面的代码向网站提交XHR请求,并返回嵌套列表,我想要的数据包含在内:
import requests
url = 'http://www.whoscored.com/stagestatfeed/9155/stageteams/'
url = str(''.join(url[0:3]))
params = {
'against': '0',
'field': '0',
'teamId': '-1',
'type': '8'
}
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)
responser = responser.json()
print responser
但是,我收到以下错误消息:
simplejson.scanner.JSONDecodeError: Expecting value: line 1 column 7 (char 6)
返回的项目似乎是JSON,所以我不确定为什么会收到此错误。
任何人都可以提供帮助吗?
由于
答案 0 :(得分:2)
使用JSONLint验证它确实是JSON,因为它可能不是。 JSONlint将告诉您错误的确切位置。我在线下面应用了这个“分析”(如果你想从这里自己找到解决方案,请不要再读了):
返回的JSON无效,因为它对字符串使用单引号。 JSON只允许双引号:
用'
代替所有"
:
import requests
import json
url = 'http://www.whoscored.com/stagestatfeed/9155/stageteams/'
#url = str(''.join(url[0:3]))
params = {
'against': '0',
'field': '0',
'teamId': '-1',
'type': '8'
}
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 json.loads(responser.text.replace("'", '"'))