urllib和urllib2有什么区别
发布时间:2025-10-29 16:15:39

urllib和urllib2都是接受url请求的相关模块,但提供了不同的功能,最明显的区别如下:
(1)urllib只能接受url,不能创建,设置headersrequest类实例;
(2)但是urllib为GET查询字符串的生成提供了urlencode()方法,而urllib2则没有(这是urllib和urllib2经常一起使用的主要原因)
(3)编码工作使用urlliburlencode()函数,帮助我们使用key:value等键值转换为‘key=value用urllib的unquote()函数解码这样的字符串。
urllib.encode()的使用
urlencode()字典类型必须在里面
#_*_coding:utf-8_*_
importurllib
dic={'derek':'编码'}
printurllib.urlencode(dic)#derek=%E7%BC%96%E7%A0%81
m=urllib.urlencode(dic)
printurllib.unquote(m)#derek=编码一般HTTP要求提交数据,需要编码成 URL编码格式,然后作为URL的一部分,或作为参数传输到Request对象。
GET请求通常用于我们从服务器中获取数据。例如,我们使用百度搜索知乎:https://www.baidu.com/s?wd=知乎
发现GEThttps://www.baidu.com/s?wd=%E7%9F%A5%E4%B9%8E,后面是一个长字符串,urldecode被发现是知乎。



相关推荐:Python视频教程
使用urllib.urlencode()转码,然后组合url。
#_*_coding:utf-8_*_
importurllib,urllib2
url='http://www.baidu.com/s'
headers={'UserAgent':'Mozilla'}
keyword=raw_input('请输入关键字:')
wd=urllib.urlencode({'wd':keyword})
fullurl=url+'?'+wd
printfullurl
request=urllib2.Request(fullurl,headers=headers)
response=urllib2.urlopen(request)
printresponse.read()然后输入关键字,爬取相应的内容。


