11.2. 避免通过 HTTP 重复地获取数据

假如说你想用 HTTP 下载资源,例如一个 Atom feed 汇聚。你不仅仅想下载一次;而是想一次又一次地下载它,如每小时一次,从提供 news feed 的站点获得最新的消息。让我们首先用一种直接而原始的方法来实现它,然后看看如何改进它。

例 11.2. 用直接而原始的方法下载 feed

>>> import urllib
>>> data = urllib.urlopen('http://www.bhlaab.com/588/xml/atom.xml').read()    
>>> print data
<?xml version="1.0" encoding="iso-8859-1"?>
<feed version="0.3"
  xmlns="http://www.bhlaab.com/076/atom/ns#"
  xmlns:dc="http://www.bhlaab.com/481/dc/elements/1.1/"
  xml:lang="en">
  <title mode="escaped">dive into mark</title>
  <link rel="alternate" type="text/html" href="http://www.bhlaab.com/119/"/>
  <-- rest of feed omitted for brevity -->
使用 Python 通过 HTTP 下载任何东西都简单得令人难以置信;实际上,时时彩计划软件公式:只需要一行代码。urllib 模块有一个便利的 urlopen 函数,它接受您所要获取的页面地址,然后返回一个类文件对象,您仅仅使用 read() 便可获得页面的全部内容。这再简单不过了。

那么这种方法有何不妥之处吗?当然,在测试或开发中一次性的使用没有什么不妥。我经常这样。我想要 feed 汇聚的内容,我就获取 feed 的内容。这种方法对其他 web 页面同样有效。但是一旦你开始按照 web 服务的方式去思考有规则的访问需求时 (记住,你说你计划每小时一次地重复获取这样的 feed ) 就会发现这样的做法效率实在是太低了,并且对服务器来说也太笨了。

下面先谈论一些 HTTP 的基本特性。

天津时时彩走势图 全天时时彩是骗局吗 时时彩免费计划手机版 江西时时彩历史开奖 时时彩12选5开奖结果
重庆老时时彩杀号专家 时时彩计划软件urssc 彩票计划软件手机版本 重庆时时彩软件破解版下载手机版 东森平台开户q654654
天游时时彩平台怎么样 酒泉时时彩玩法 天机时时彩软件源码 内蒙古时时彩11选5玩法 破解版时时彩计划软件
凤凰娱乐手机版客户端 1970奖金彩票娱乐平台 最牛的破解软件论坛 重庆时时彩后三六胆 时时彩代理到底违法吗
福彩3d杀号定胆彩宝贝 山西十一选五任五遗漏数据 七星彩txt 湖北快3走势图一定牛 黑龙江36选7开奖结果
新大陆 云南时时彩多少分开奖 快乐十分开奖结果查询 排列7奖金多少 天津时时彩开奖结果
山西十一选五号码查询 上海时时乐开奖结果 山西十一选五预测号码推荐 上海麻将 北京pk10开奖结果
快三机器人 河北快3开奖号码今天 江苏体彩7位数开奖号码 7系时时彩软件 新疆时时彩开奖号码