2014-09-03 84 views
1

我使用下面的代码,其模仿网页上的XHR请求更新表对象的内容时,在屏幕上选择了不同选项卡按钮:“响应对象没有属性‘主体’”

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 

这是抛出错误在帖子的标题。我猜我需要在requests.get()声明中以某种方式添加参数'body',但我不确定具体是什么。谁能帮忙?

感谢

回答

3

你要找的属性是content

>>> import requests 
>>> response = requests.get('http://google.com') 
>>> response.content 
'<!doctype html><html itemscope=""... 

实际上,你的代码应该是这样的:

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.content 
#fixtures = literal_eval(response.content) 
print fixtures 
+0

......嗯,我原来用的响应。内容但没有返回我期望看到的内容,所以我尝试使用response.body,因为我很熟悉scrapy。我期待响应看起来更像是一本字典,因为这是支持我要解析的表格的数据结构。 – gdogg371 2014-09-03 22:15:30

+0

@ user3045351响应以原始文本形式出现,您可以使用'json'库解析它,因为响应中的内容是json格式,并且您将拥有一个字典。 – 2014-09-03 22:16:45

+0

当我运行上面的代码,我得到一个错误,说该页面不存在,但如果您启用xhr日志记录在铬开发人员控制台,这是您在移动表格我正在查看的网页... – gdogg371 2014-09-03 22:17:33