urllib & urllib2

之前看python, 知道有urllib和urllib2两个模块,但是一直没有去深入学习, 也并不清楚为什么有了urllib2还要保留urllib,最近接触一点爬虫的知识,用到了urllib和urllib2, 在此做一点记录,记录这两个模块的区别以便日后查看.
urllib和urllib2模块都做与请求URl相关的操作,但是提供的功能却不尽相同.

  1. urllib2.urlopen可以接受一个Request 对象或者url,而urllib.urlopen只能接受一个url
    在交互解释器中查看两个函数的帮助可以看到

    >>> import urllib,urllib
    >>> help(urllib.urlopen)
    
    Help on function urlopen in module urllib:
    
    urlopen(url, data=None, proxies=None)
        Create a file-like object for the specified URL to read from.
    (END)
    
    >>> help(urllib2.urlopen)
    >
    Help on function urlopen in module urllib2:
    
    urlopen(url, data=None, timeout=<object object>)
    (END)
  2. urllib 有urlencode,urllib2没有,这也是为什么总是urllib,urllib2常会一起使用的原因

  3. 如果只是单纯的下载或者显示下载进度,不对下载后的内容做处理等,比如下载图片,css,js文件等,可以用urlilb.urlretrieve()
    如果是下载的请求需要填写表单,输入账号,密码等,建议用urllib2.urlopen(urllib2.Request())
    在对字典数据编码时候,用到的是urllib.urlencode()
发布了30 篇原创文章 · 获赞 26 · 访问量 17万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章