2013-10-11 25 views
3

因爲它的文檔相當稀疏,所以對於grequests的快速問題。 從發送的請求中返回xml響應的最佳方式是什麼?我無法找到一種方法來獲取狀態代碼以外的響應。有人能指出我正確的方向嗎?甚至可以grequests返回XML響應?我應該只使用請求並自己執行線程嗎? 繼承人的文檔代碼Python Grequests xml響應

import grequests 

urls = [ 
'http://www.heroku.com', 
'http://python-tablib.org', 
'http://httpbin.org', 
'http://python-requests.org', 
'http://kennethreitz.com' 
] 
rs = (grequests.get(u) for u in urls) 
grequests.map(rs) 

所以我的問題是你怎麼從映射請求到實際得到XML響應?提前致謝。

回答

8

迭代器返回值爲grequests.map。每個產品都是響應對象。您可以使用content屬性獲取內容。

例如:

rs = (grequests.get(u) for u in urls) 
for response in grequests.map(rs): 
    print('{}: {}'.format(response.url, len(response.content))) 
+0

不幸的是,這隻返回URL加上結束的代碼。例如:'http://www.dictionaryapi.com/api/v1/references/thesaurus/xml/political?key=mykey'返回 'http://www.dictionaryapi.com/api/v1/references/thesaurus/xml/political?key = mykey:261' – user2758113

+1

@ user2758113,它不是代碼。這是內容的長度。將'len(response.content)'替換爲'response.content'。我使用'len'是因爲打印內容打印太多。 – falsetru

+0

非常好。這工作。 – user2758113