python urllib2模块安装,Python urllib和urllib2模块学习(二)

一、urllib其它函数

前面介绍了 urllib 模块,以及它常用的 urlopen() 和 urlretrieve()函数的使用介绍。当然 urllib 还有一些其它很有用的辅助方法,比如对 url 进行编码、解码等等。

辅助方法:

1. urllib.quote(string[,safe]) : 对字符串进行编码,参数safe指定了不需要编码的字符;

urllib.unquote(string):  对字符串进行解码;

2. urllib.urlencode(query[,doseq]): 将dict或都包含两个元素的元组列表转换成url参数。

例如:

>>> dict1 = {'name':'baidu','Local':'CD'}

>>> data = urllib.urlencode(dict1)

>>> print data

Local=CD&name=baidu

3. urllib.pathname2url(path): 将本地path转换成url路径

urllib.url2pathname(path): 将url路径转换成本地路径

二、urllib与urllib2的区别:

urllib 和 urllib2 都是接受URL请求的相关模块,但是提供了不同的功能。两个最显著的不同如下:

urllib2可以接受一个Request类的实例来设置URL请求的headers,urllib仅可以接受URL。这意味着,你不可以伪装你的User Agent字符串等。

urllib提供urlencode方法用来GET查询字符串的产生,而urllib2没有。这是为何urllib常和urllib2一起使用的原因。

三、urllib2常用函数:

1.urllib2.urlopen()方法

即可以接受一个字符串型的url 地址或者一个 Request 对象。将打开这个 url 并返回结果为一个像文件对象一样的对象.

urlopen()是最简单的请求方式,它打开url并返回类文件对象,并且使用该对象可以读取返回的内容。参数url可以是包含url的字符串,也可以是urllib2.request类的实例。data是经过编码的post数据(一般使用urllib.urlencode()来编码)。timeout是可选的超时期(以秒为单位),供所有阻塞操作内部使用。

常用方法:

1. read(),readline(),readlines():  以字节字符串形式读取(nbytes个数据、单行、返回一个列表)

2.getcode():  返回整数形式的HTTP响应代码,比如成功返回200,未找到文件时返回404

3.info()  :  返回映射对象,该对象带有与url关联的信息,对HTTP来说,返回的服务器响应包含HTTP包头。

2. urllib2.Request()方法

语法:Request(url [data,headers [,origin_req_host ,[unverifiable]]]])

对于比较简单的请求,urlopen()的参数url就是一个代表url的但如果需要执行更复杂的操作,如修改HTTP报头,可以创建Request实例并将其作为url参数。

新建Request实例。url为url字符串,data是伴随url提交的数据(比如要post的数据)。不过要注意,提供data参数时,它会将HTTP请求从'GET'改为‘POST’。headers是一个字典,包含了可表示HTTP报头的键值映射(即要提交的header中包含的内容)。originreqhost通常是发出请求的主机的名称,如果请求的是无法验证的url(通常是指不是用户直接输入的url,比如加载图像的页面中镶入的url),则后一个参数unverifiable设为TRUE。

假设Request实例r,其比较重要的方法有下面几个:

r.add_data(data)向请求添加数据。如果请求是HTTP请求,则方法改为‘POST’。data是向指定url提交的数据,要注意该方法不会将data追教导之前已经设置的任何数据上,而是使用现在的data替换之前的。

r.add_header(key, val)向请求添加header信息,key是报头名,val是报头值,两个参数都是字符串。

r.addunredirectedheader(key, val)作用基本同上,但不会添加到重定向请求中。

r.set_proxy(host, type)准备请求到服务器。使用host替换原来的主机,使用type替换原来的请求类型。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值