python中的urllib库和urllib2

本文详细介绍了urllib2库的使用方法,包括文件操作、URL编码与解码,以及如何通过urlretrieve()函数将远程文件保存到本地。通过实例演示了如何对URL进行编码、解码,并展示了urlretrieve()函数的用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


1、urllib2

        urllib模块用于读取来自网上(服务器上)的数据。

       主要使用的方法有:

  • read(),readline(),readlines(),fileno(),close():都与文件操作一样,这里不再赘述。可以参考前面有关文件章节
  • info():返回头信息
  • getcode():返回http状态码
  • geturl():返回url

       

对url编码、解码

url对其中的字符有严格要求,不许可某些特殊字符,这就要对url进行编码和解码了。这个在进行web开发的时候特别要注意。urllib模块提供这种功能。

  • quote(string[, safe]):对字符串进行编码。参数safe指定了不需要编码的字符
  • urllib.unquote(string) :对字符串进行解码
  • quote_plus(string [ , safe ] ) :与urllib.quote类似,但这个方法用'+'来替换空格' ',而quote用'%20'来代替空格
  • unquote_plus(string ) :对字符串进行解码;
  • urllib.urlencode(query[, doseq]):将dict或者包含两个元素的元组列表转换成url参数。例如{'name': 'laoqi', 'age': 40}将被转换为"name=laoqi&age=40"
  • pathname2url(path):将本地路径转换成url路径
  • url2pathname(path):将url路径转换成本地路径

看例子就更明白了:

>>> du = "http://www.itdiffer.com/name=python book"
>>> urllib.quote(du)
'http%3A//www.itdiffer.com/name%3Dpython%20book'
>>> urllib.quote_plus(du)
'http%3A%2F%2Fwww.itdiffer.com%2Fname%3Dpython+book'


urlretrieve()

虽然urlopen()能够建立类文件对象,但是,那还不等于将远程文件保存在本地存储器中,urlretrieve()就是满足这个需要的。先看实例:

>>> import urllib
>>> urllib.urlretrieve("http://www.itdiffer.com/images/me.jpg","me.jpg")
('me.jpg', <httplib.HTTPMessage instance at 0xb6ecb6cc>)
>>> 

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

  • url:文件所在的网址
  • filename:可选。将文件保存到本地的文件名,如果不指定,urllib会生成一个临时文件来保存
  • reporthook:可选。是回调函数,当链接服务器和相应数据传输完毕时触发本函数
  • data:可选。如果用post方式所发出的数据
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值