| 導航:起始頁 > Dive Into Python > HTTP Web 服務 > 避免通過 HTTP 重復地獲取數據 | << >> | ||||
深入 Python :Dive Into Python 中文版Python 從新手到專家 [Dip_5.4b_CPyUG_Release] |
|||||
假如說你想用 HTTP 下載資源,例如一個 Atom feed 匯聚。你不僅僅想下載一次;而是想一次又一次地下載它,如每小時一次,從提供 news feed 的站點獲得最新的消息。讓我們首先用一種直接而原始的方法來實現它,然后看看如何改進它。
>>> import urllib >>> data = urllib.urlopen('http://diveintomark.org/xml/atom.xml').read()>>> print data <?xml version="1.0" encoding="iso-8859-1"?> <feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="en"> <title mode="escaped">dive into mark</title> <link rel="alternate" type="text/html" /> <-- rest of feed omitted for brevity -->
那么這種方法有何不妥之處嗎?當然,在測試或開發中一次性的使用沒有什么不妥。我經常這樣。我想要 feed 匯聚的內容,我就獲取 feed 的內容。這種方法對其他 web 頁面同樣有效。但是一旦你開始按照 web 服務的方式去思考有規則的訪問需求時 (記住,你說你計劃每小時一次地重復獲取這樣的 feed ) 就會發現這樣的做法效率實在是太低了,并且對服務器來說也太笨了。
下面先談論一些 HTTP 的基本特性。
<< HTTP Web 服務 |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
HTTP 的特性 >> |