2014-09-03 85 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