urllib 详解

urllib是一个是python的一个高级web模块,它可以帮助我们快速的获取网络上的数据
今天对urllib库的用法做一个简单的总结.

  1. urllib.urlopen(url[,data[,proxies[,context]]]) -> a file like object
    本函数的作用是接受一个地址参数,打开该地址下的文件并返回一个类文件对象.
    url参数一般是网址,也可以是本地文件(以file:标记开始),如果获取失败,引发IOError 异常,若成功,返回类文件对象
    对于该对象可以使用read(), readline(), readlines(), fileno(), close(), info(), getcode() 和geturl() 方法访问.
    data参数是POST方式是需要传递给web服务器的数据,必须是标准的网络数据格式,该格式可以使用urllib.urlencode() 方法生成.
    proxies参数是代理服务器的设置
    context参数是python2.79新增的,实在https 传输协议的时候需要的证书内容,参数类型是ssl.SSLcontext类对象.
    下边用实例说明

    >>>url = 'http://www.baidu.com'
    >>> page = urllib.urlopen(url)
    >>>page.read()[0:100]
    'print page.info()
    Date: Mon, 04 Jan 2016 01:59:50 GMT
    Content-Type: text/html; charset=utf-8
    Connection: Close
    Vary: Accept-Encoding
    Set-Cookie: BAIDUID=407CA5585070D99F114F474BDF25B1DD:FG=1; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
    Set-Cookie: BIDUPSID=407CA5585070D99F114F474BDF25B1DD; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
    Set-Cookie: PSTM=1451872790; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
    Set-Cookie: BDSVRTM=0; path=/
    Set-Cookie: BD_HOME=0; path=/
    Set-Cookie: H_PS_PSSID=17746_1423_18726_18240_18534_17946_18731_18546_17000_17072_15888_12031; path=/; domain=.baidu.com
    P3P: CP=" OTI DSP COR IVA OUR IND COM "
    Cache-Control: private
    Cxy_all: baidu+c5bd5b617505e343d70a0efa4299eae3
    Expires: Mon, 04 Jan 2016 01:58:54 GMT
    X-Powered-By: HPHP
    Server: BWS/1.1
    X-UA-Compatible: IE=Edge,chrome=1
    BDPAGETYPE: 1
    BDQID: 0xfb6bb786001d1192
    BDUSERID: 0
    
  2. urllib.urlretrieve(url[,filename[,reporthook[,data]]]) -> (filename, header)
    该函数可以将整个网页内容拷贝到本地文件中,若成功,返回包含文件名和文件头信息元组.若filename参数缺省,则根据系统不同在不同位置生成临时文件.

    >>>urllib.urlretrieve(url)
    ('/tmp/tmp6Wml60', at 0x7f57d005b5f0>)

    (我是ubuntu14.04, 生成的临时文件在/tmp目录下,打开该文件就能看到百度主页的源码)

  3. urllib.urlencode(query[,doseq]) -> percent-encoded string
    将数据转换成预编码格式,该格式数据可以传递给urlopen()函数使用.

你可能感兴趣的:(python,urllib)