Python-urllib的API

一、概述

urllib模块提供了用于获取万维网(the World Wide Web)数据的高层接口。特别是urlopen()函数,它很像内建函数open(),但是它接收的参数不是文件名,而是URLs。


二、高级层次接口

1、urllib.urlopen(url[, data[, proxies]])

打开URL所指示的网络上的对象。

如果该URL没有指明协议类型,或者其协议标识符为file:,则该函数会打开本地文件;否则它会使用socket连接网络上的某个服务器。 如果连接失败,会抛出IOError异常。如果一切顺利,返回一个类文件对象。该对象拥有以下方法:read(),readline(),readlines(),fileno(),close(),info(),getcode() 和geturl(),同时也支持iterator。


geturl()函数返回网页的真实URL。有时,HTTP服务器会将client重定向至另一个URL。显然,urlopen()函数可以处理这种情况,但是有时调用者希望知道client被重定向到了哪个URL处。geturl()函数用于获得重定向后的URL。

如果urlopen中提交的URL不是一个HTTP的URL,那么getcode()方法返回None,否则返回HTTP响应发送回来的HTTP状态码。


2、urllib.urlretrieve(url[, filename[, reporthook[, data]]])

把URL所指定的资源复制到本地文件夹中。

如果URL指向一个本地文件或有效的缓存拷贝对象,则该对象不会复制。当filename是本地文件并且对象无法找到时,返回一个元组(filename, headers)。


如果存在第二个参数,则在该位置复制;如果没有,该位置将生成一个临时文件。

如果存在第三个参数,这是一个钩子函数,它将在建立网络连接后调用一次,每读一个块(block)也调用一次。


三、实用的函数

1、urllib.quote(string[, safe])

使用%xx 转义替换string 中的特殊字符。

字母、数字和'_.-' 字符永远不会转义。默认情况下,这个函数用于转义URL中的路径部分。可选的safe 参数指出其它不应该转义的字符 —— 默认值为'/'。
例如:quote('/~connolly/') 得到'/%7econnolly/'。


2、urllib.unquote(string)

从%xx转义转换成单字节字符串。

例如: unquote('/%7Econnolly/') 得到'/~connolly/'.



注意事项:

在Python 3中,urllib模块已经被拆分为urllib.request,urllib.parse和urllib.error。当您将代码转换为Python 3时,2to3 工具可以对代码的imports部分进行自动修改。注意,Python 3中的urllib.request.urlopen()函数相当于urllib2.urlopen(),而urllib.urlopen()函数已被Python 3移除。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值