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函数而不带任何参数,它将为你完成清除工作。
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函数而不带任何参数,它将为你完成清除工作。
相关文章推荐
- python_socket 网络编程
- Python网络编程之线程,进程
- python 网络编程测试-host应答
- python 网络编程
- Python简单网络编程示例【客户端与服务端】
- Python 网络编程操作TCP/UDP 初探(一)
- python(12-4 网络编程 ---HTTP协议 报文收发结构 )
- python网络编程
- Python socket网络编程
- Python Socket 网络编程 (服务器端编程)
- Dave Python 练习十八 -- 网络编程
- Python学习第二十一天——线程进程续和网络编程
- Python网络编程之SocketServer
- Python网络编程之 select
- python 网络编程基础(一)
- python下的复杂网络编程包networkx的使用(摘抄)
- Python笔记之网络编程
- python 网络编程第一版
- python学习笔记(六)网络编程
- python 14章,网络编程