知行编程网知行编程网  2023-01-01 05:00 知行编程网 隐藏边栏  0 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于urllib和urllib2有什么区别的相关知识,包括urllib2中的函数,以及urllib3和urllib的区别这些编程知识,希望对大家有参考作用。

urllib 和 urllib2 有什么区别

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

(1)urllib仅可以接受URL,不能创建,设置headers的request类实例;

(2)但是urllib提供了GET查询字符串生成的urlencode()方法,而urllib2没有(这也是urllib和urllib2经常一起使用的主要原因)

(3)编码工作使用urllib的urlencode()函数帮助我们将key:value对转换为'key=value'字符串,解码工作可以使用urllib的unquote()函数。


urllib.encode()的使用

urlencode()里面必须是字典类型

# _*_ coding:utf-8 _*_
import urllib
dic = {'derek':'编码'}
print urllib.urlencode(dic)    #derek=%E7%BC%96%E7%A0%81
m = urllib.urlencode(dic)
print urllib.unquote(m)         #derek=编码

一般HTTP请求提交的数据需要编码成URL编码格式,然后作为url的一部分,或者作为参数传递给Request对象。

GET请求一般用于我们从服务器获取数据。比如我们用百度搜索知乎:https://www.baidu.com/s?wd=Zhihu

找到GEThttps://www.baidu.com/s?wd=%E7%9F%A5%E4%B9%8E,后面跟着一长串,经过urldecode,发现是知乎。

urllib 和 urllib2 有什么区别
urllib 和 urllib2 有什么区别
urllib 和 urllib2 有什么区别

用urllib.urlencode()进行转码,然后组合url。

# _*_ coding:utf-8 _*_
import urllib,urllib2
url = 'http://www.baidu.com/s'
headers = {'UserAgent':'Mozilla'}
keyword = raw_input('请输入关键字:')
wd = urllib.urlencode({'wd':keyword})
fullurl = url + '?' + wd
print fullurl
request = urllib2.Request(fullurl,headers=headers)
response = urllib2.urlopen(request)
print response.read()

然后输入关键字,爬取下对应的内容。

urllib 和 urllib2 有什么区别

urllib 和 urllib2 有什么区别

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享