• 技术文章 >Python技术 >Python基础教程

    urllib和urllib2有什么区别

    爱喝马黛茶的安东尼爱喝马黛茶的安东尼2019-07-01 11:47:35原创2220

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

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

    (2)但是urllib提供urlencode()方法用来GET查询字符串的产生,而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=知乎

    发现GEThttps://www.baidu.com/s?wd=%E7%9F%A5%E4%B9%8E,后面是一个长长的字符串,urldecode后发现就是知乎。

    1561952127909957.png1561952351367605.pngdd.png

    相关推荐:《Python视频教程

    用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()

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

    ff.png

    gg.png

    专题推荐:urllib urllib2 区别
    品易云
    上一篇:Python random模块及用法 下一篇:Python time模块详解

    相关文章推荐

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网