XHR request URL says does not exist when attempting to parse it#39;s content(XHR 请求 URL 在尝试解析其内容时说不存在)
问题描述
在我使用 Scrapy 为我的问题构建一个完整的解决方案之前,我发布了一个我想要做的简单版本:
Before I build a full solution to my problem using Scrapy I am posting a simplistic version of what I want to do:
import requests
url = 'http://www.whoscored.com/stageplayerstatfeed/?field=1&isAscending=false&orderBy=Rating&playerId=-1&stageId=9155&teamId=32"'
params = {'d': date.strftime('%Y%m'), 'isAggregate': 'false'}
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'}
response = requests.get(url, params=params, headers=headers)
fixtures = response.body
#fixtures = literal_eval(response.content)
print fixtures
此代码表示上述 URL 不存在.该 URL 与您从本页主表的总体"切换到主页"选项卡时提交的 XHR 请求相关:
This code is saying that the above URL does not exist. The URL relates to an XHR request that is submitted when you toggle from the 'Overall' to the 'Home' tab of the main table on this page:
http://www.whoscored.com/Teams/32/
如果您在 Google Developer Tools 的控制台中激活 XHR 日志记录,您可以看到 XHR 请求和从服务器以字典形式发送的响应(这是预期的格式).
If you activate XHR logging within the Console of Google Developer Tools you can see both the XHR request and the response sent from the server in the form of a dictionary (which is the expected format).
谁能告诉我为什么上面的代码没有返回我希望看到的数据?
Can anyone tell me why the above code is not returning the data I would expect to see?
谢谢
推荐答案
你有几个问题:
- 网址应为
http://www.whoscored.com/stageplayerstatfeed
- 错误的
GET
参数 - 缺少重要的必填标题
- 你需要
response.json()
,而不是response.body
- the url should be
http://www.whoscored.com/stageplayerstatfeed
- wrong
GET
parameters - missing important required headers
- you need
response.json()
, notresponse.body
固定版本:
import requests
url = 'http://www.whoscored.com/stageplayerstatfeed'
params = {
'field': '1',
'isAscending': 'false',
'orderBy': 'Rating',
'playerId': '-1',
'stageId': '9155',
'teamId': '32'
}
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/Teams/32/'}
response = requests.get(url, params=params, headers=headers)
fixtures = response.json()
print fixtures
打印:
[
{
u'AccurateCrosses': 0,
u'AccurateLongBalls': 10,
u'AccuratePasses': 89,
u'AccurateThroughBalls': 0,
u'AerialLost': 2,
u'AerialWon': 4,
...
},
...
]
这篇关于XHR 请求 URL 在尝试解析其内容时说不存在的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:XHR 请求 URL 在尝试解析其内容时说不存在


基础教程推荐
- 何时使用 os.name、sys.platform 或 platform.system? 2022-01-01
- 筛选NumPy数组 2022-01-01
- Python kivy 入口点 inflateRest2 无法定位 libpng16-16.dll 2022-01-01
- 在 Python 中,如果我在一个“with"中返回.块,文件还会关闭吗? 2022-01-01
- 如何在海运重新绘制中自定义标题和y标签 2022-01-01
- Dask.array.套用_沿_轴:由于额外的元素([1]),使用dask.array的每一行作为另一个函数的输入失败 2022-01-01
- 使用PyInstaller后在Windows中打开可执行文件时出错 2022-01-01
- 线程时出现 msgbox 错误,GUI 块 2022-01-01
- 如何让 python 脚本监听来自另一个脚本的输入 2022-01-01
- 用于分类数据的跳跃记号标签 2022-01-01