[python]-urllib和urllib2模块

转自:http://zeping.blog.51cto.com/6140112/1143722

urllib 和urllib2都是接受URL请求的相关模块,但是提供了不同的功能。

urllib提供urlencode方法用来GET查询字符串的产生,而urllib2没有。

urllib:

网页基础:

  1. import urllib
  2. #打开51cto
  3. cto = urllib.urlopen(‘http://www.51cto.com‘)
  4. #打开本地文件:cto = urllib.urlopen(url=‘file:/root/python/ulib‘)
  5. #打开ftp:cto = = urllib.urlopen(url=‘ftp://用户名:密码@ftp地址/‘)
  6. #读取51cto首页的代码
  7. print cto.read()
  8. #获取远程服务器返回的头信息,跟curl -I www,51cto.com差不多
  9. print cto.info()
  10. #返回http状态码,200表示成功,404表示网址未找到
  11. print cto.getcode()
  12. #返回请求的URL
  13. print cto.geturl()
  14. #运行结果
  15. [[email protected] python]#python ctourl
  16. 。。。。。。。省略cto.read()函数,输出太多啦。。。。。
  17. Server: Tengine  #cto.info()返回信息
  18. Date: Wed, 27 Feb 2013 15:05:46 GMT
  19. Content-Type: text/html
  20. Connection: close
  21. Vary: Accept-Encoding
  22. Load-Balancing: web48
  23. 200              #cto.getcode()返回信息
  24. http://www.51cto.com   #cto.geturl()返回信息
  25. #urlopen返回的是一个类文件对象,而这个对象的使用方法和文件对象的
  26. #使用方法完全一样。

字符的编码和解码:

  1. import urllib,os
  2. #对字符串进行编码
  3. stra = urllib.quote(‘this is python‘)
  4. print stra
  5. #对字符串进行解码
  6. print urllib.unquote(stra)
  7. #这个方法用‘+’代替了%20 和urllib.quote类似,
  8. strb = urllib.quote_plus(‘this is python‘)
  9. print strb
  10. #解码
  11. print urllib.unquote_plus(strb)
  12. dicta = {‘name‘:‘zeping‘,‘passwd‘:‘123456‘}
  13. #urlencode将字典转换成url参数
  14. print urllib.urlencode(dicta)
  15. #将本地路径转换成url路径
  16. filename = urllib.pathname2url(‘/python/test.py‘)
  17. print filename
  18. #将url路径转换成本地路径
  19. print urllib.url2pathname(filename)
  20. ##########运行结果##########
  21. [[email protected] python]# python quote
  22. this%20is%20python
  23. this is python
  24. this+is+python
  25. this is python
  26. passwd=123456&name=zeping
  27. /python/test.py
  28. /python/test.py

urllib.urlretrieve():下载

  1. import urllib
  2. def Schedule(a,b,c):
  3. ‘‘‘‘‘
  4. a:已经下载的数据块
  5. b:数据块的大小
  6. c:远程文件的大小
  7. ‘‘‘
  8. per = 100.0 * a * b / c
  9. if per > 100 :
  10. per = 100
  11. print ‘%.2f%%‘ % per
  12. #这里以下载缓存插件为例
  13. url = ‘http://fastlnmp.googlecode.com/files/eaccelerator-0.9.6.tar.bz2‘
  14. #获取文件名,这里是下载到当前目录下,若果要下载到别的目录必
  15. #须输入绝对路径和文件名字:/root/tools/eaccelerator-0.9.6.tar.bz2
  16. local = url.split(‘/‘)[-1]
  17. urllib.urlretrieve(url,local,Schedule)
  18. #########运行结果##########
  19. [[email protected] urllib]# python down
  20. 0.00%
  21. 7.74%
  22. 15.48%
  23. 23.22%
  24. 30.96%
  25. 38.70%
  26. 46.44%
  27. 54.18%
  28. 61.92%
  29. 69.66%
  30. 77.40%
  31. 85.15%
  32. 92.89%
  33. 100.00%
  34. [[email protected] urllib]# ls
  35. down  eaccelerator-0.9.6.tar.bz2  ulib2

urllib2:

urllib2可以接受一个Request类的实例来设置URL请求的headers,urllib仅可以接受URL。

以上转自:http://zeping.blog.51cto.com/6140112/1143722

时间: 2024-10-09 00:23:29

[python]-urllib和urllib2模块的相关文章

Python urllib和urllib2模块学习(二)

一.urllib其它函数 前面介绍了 urllib 模块,以及它常用的 urlopen() 和 urlretrieve()函数的使用介绍.当然 urllib 还有一些其它很有用的辅助方法,比如对 url 进行编码.解码等等. 辅助方法: 1. urllib.quote(string[,safe]) : 对字符串进行编码,参数safe指定了不需要编码的字符: urllib.unquote(string):  对字符串进行解码: 2. urllib.urlencode(query[,doseq]):

Python urllib和urllib2模块学习

Python标准库中有许多实用的工具类,但是在具体使用时,标准库文档上对使用细节描述的并不清楚,比如 urllib和urllib2 这个 HTTP 客户端库.这里总结了一些 urllib和urlib2 库的使用细节. Python urllib 库提供了一个从指定的 URL 地址获取网页数据,然后对其进行分析处理,获取想要的数据. 一.urllib常用函数介绍: 1. urlopen()函数:即创建一个类文件对象为指定的 url 来读取. 可以使用help(urllib.urlopen)查看函数

python urllib、urllib2模块讲解

1.urllib模块 1.urllib.urlopen(url[,data[,proxies]]) 打开一个url的方法,返回一个文件对象,然后可以进行类似文件对象的操作.本例试着打开google import urllib f = urllib.urlopen('http://www.google.com.hk/') firstLine = f.readline() #读取html页面的第一行 urlopen返回对象提供方法: -         read() , readline() ,re

Python urllib和urllib2模块学习(三)

build_opener()详解: 1.urllib2.urlopen()函数不支持验证.cookie或者其它HTTP高级功能,要支持这些功能,必须使用build_opener()函数创建自定这句话的Opener对象. 代码如下: build_Opener([handler1[handle2,...]]) 参数handler是Handler实例,常用的有HTTPBasicAuthHandler.HTTPCookieProcessor.ProxyHandler等. build_opener ()返

Python的urllib和urllib2模块

Python的urllib和urllib2模块都做与请求URL相关的操作,但他们提供不同的功能.他们两个最显着的差异如下: urllib2可以接受一个Request对象,并以此可以来设置一个URL的headers,但是urllib只接收一个URL.这意味着,你不能伪装你的用户代理字符串等.urllib模块可以提供进行urlencode的方法,该方法用于GET查询字符串的生成,urllib2的不具有这样的功能.这就是urllib与urllib2经常在一起使用的原因. 常用的方法 urllib2.u

Python:urllib和urllib2的区别(转)

原文链接:http://www.cnblogs.com/yuxc/ 作为一个Python菜鸟,之前一直懵懂于urllib和urllib2,以为2是1的升级版.今天看到老外写的一篇<Python: difference between urllib and urllib2>才明白其中的区别. You might be intrigued by the existence of two separate URL modules in Python -urllib and urllib2. Even

【Python】Python的urllib、urllib2模块调用“百度翻译”API进行批量自动翻译

1.问题描述 在文本数据处理时,经常回出现文本中各种语言的混杂情况,包括:英文.日语.俄语.法语等,需要将不同语种的语言批量翻译成中文进行处理.可以通过Python直接调用百度提供的翻译API进行批量的翻译. 百度翻译API详细文档见:百度翻译API文档 2.问题解决 开发环境:Linux 将文本中的中文和非中文进行分离,对非中文的部分进行翻译. Python的代码如下:translate.py #!/usr/bin/python #-*- coding:utf-8 -*- import sys

python urllib 和 urllib2

urllib 和 urllib2 都是接受URL请求的相关模块,但是提供了不同的功能.两个最显著的不同如下: urllib 仅可以接受URL,不能创建 设置了headers 的Request 类实例: 但是 urllib 提供 urlencode 方法用来GET查询字符串的产生,而 urllib2 则没有.(这是 urllib 和 urllib2 经常一起使用的主要原因) 编码工作使用urllib的urlencode()函数,帮我们将key:value这样的键值对转换成"key=value&qu

Python:urllib 和urllib2之间的区别

你可能对于Python中两个独立存在的-urllib2和-urllib2感到好奇.更有趣的是:它们并不是可以相互代替的.那么这两个模块间的区别是什么,并且这两个我们都需要吗? urllib 和urllib2都是接受URL请求的相关模块,但是提供了不同的功能.两个最显著的不同如下: urllib2可以接受一个Request类的实例来设置URL请求的headers,urllib仅可以接受URL.这意味着,你不可以伪装你的User Agent字符串等. urllib提供urlencode方法用来GET