您的位置:首页 > 理论基础 > 计算机网络

Python的网络编程(四)

2009-03-03 14:45 267 查看
urllib和urllib2

urllib和urllib2的工作大同小异,它们让你能够通过网络访问文件,就像访问自己电脑上的一样。通过简单的函数调用,URL所定位的资源就可以被你作为输入使用到你的程序中。如果再配以re模块,那么你就能够下载Web页面、提取信息、自动创建你所寻找的东西的报告。

urllib2更流行一些。对于简单的下载任务,urllib比较好。如果你需要HTTP验证或cookies,或你想写一些扩展去处理你自己的协议的话,那么urllib2是正确的选择。

一、打开远程文件

打开远程文件的操作和本地差不多,不同的是只能使用读模式,并且使用urllib模块的urlopen:

>>> from urllib import urlopen
>>> webpage=urlopen('http://www.python.org')

如果你在线的话,变量webpage现在就包含了一个关联Web页:http://www.python.org的文件类对象。
注意:如果你当前没有联网,而你又想练习一下urllib的话,你可以用如下形式访问本地文件:
localpage=urlopen(r'file:c:/test.txt')

由urlopen返回的文件类对象支持close,read,readline,readlines等方法。

下面的代码抽取出了Python官方主页中“Documentation”链接的URL:

>>> import re
>>> text = webpage.read()
>>> m = re.search('<a href="([^"]+)">Documentation</a>', text, re.IGNORECASE)
>>> m.group(1)
'http://docs.python.org/'

二、获取远程文件

urlopen函数给你一个文件类对象,你可以读取它。如果你使用urlib时只关心下载文件并存储一个复本到本地文件的话,你可以使用urlretrieve替而代之。urlretrieve返回一个元组(filename, headers),filename是本地文件(复本)的名字(它由urllib自动创建),headers包含关于远程文件的一些信息。
如果你想为复本指定一个名字的话,你可以提供第二个参数:
urlretrieve('http://www.python.org', 'C://python_webpage.html')
这将获取Python官方主页并存储到本地C:/python_webpage.html中。如果你不指定复本的文件名,那么文件将放到一个临时的地方,你能够使用open函数打开它,如果你要清除这些临时的复本,你可以调用urlcleanup函数而不带任何参数,它将为你完成清除工作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: