zoukankan      html  css  js  c++  java
  • python3 urllib 类

    urllib模块中的方法

    1.urllib.urlopen(url[,data[,proxies]])

    打开一个url的方法,返回一个文件对象,然后可以进行类似文件对象的操作。本例试着打开google

    复制代码
    >>> import urllib
    >>> f = urllib.urlopen('http://www.google.com.hk/')
    >>> firstLine = f.readline()   #读取html页面的第一行
    >>> firstLine
    '<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage"><head><meta content="/images/google_favicon_128.png" itemprop="image"><title>Google</title><script>(function(){
    '
    复制代码

    urlopen返回对象提供方法:

    -         read() , readline() ,readlines() , fileno() , close() :这些方法的使用方式与文件对象完全一样

    -         info():返回一个httplib.HTTPMessage对象,表示远程服务器返回的头信息

    -         getcode():返回Http状态码。如果是http请求,200请求成功完成;404网址未找到

    -         geturl():返回请求的url

    2.urllib.urlretrieve(url[,filename[,reporthook[,data]]])

    urlretrieve方法将url定位到的html文件下载到你本地的硬盘中。如果不指定filename,则会存为临时文件。

    urlretrieve()返回一个二元组(filename,mine_hdrs)

    临时存放:

    复制代码
     
      >>> filename = urllib.urlretrieve('http://www.google.com.hk/')
    >>> type(filename)
    <type 'tuple'>
    >>> filename[0]
    '/tmp/tmp8eVLjq'
    >>> filename[1]
    <httplib.HTTPMessage instance at 0xb6a363ec>
    复制代码

    存为本地文件:

    复制代码
     >>> filename = urllib.urlretrieve('http://www.google.com.hk/','file_name保存的文件名.html等')
    >>> filename = urllib.urlretrieve('http://www.google.com.hk/',filename='/home/dzhwen/python文件/Homework/urllib/google.html') >>> type(filename) <type 'tuple'> >>> filename[0] '/home/dzhwen/pythonxe6x96x87xe4xbbxb6/Homework/urllib/google.html' >>> filename[1] <httplib.HTTPMessage instance at 0xb6e2c38c>
    复制代码

    3.urllib.urlcleanup()

    清除由于urllib.urlretrieve()所产生的缓存

    4.urllib.quote(url)和urllib.quote_plus(url)

    将url数据获取之后,并将其编码,从而适用与URL字符串中,使其能被打印和被web服务器接受。

    >>> urllib.quote('http://www.baidu.com')
    'http%3A//www.baidu.com'
    >>> urllib.quote_plus('http://www.baidu.com')
    'http%3A%2F%2Fwww.baidu.com'

    5.urllib.unquote(url)和urllib.unquote_plus(url)

    与4的函数相反。

    6.urllib.urlencode(query)

    将URL中的键值对以连接符&划分

    这里可以与urlopen结合以实现post方法和get方法:

    GET方法:

    复制代码
    >>> import urllib
    >>> params=urllib.urlencode({'spam':1,'eggs':2,'bacon':0})
    >>> params
    'eggs=2&bacon=0&spam=1'
    >>> f=urllib.urlopen("http://python.org/query?%s" % params)
    >>> print f.read()
    复制代码

    POST方法:

    >>> import urllib
    >>> parmas = urllib.urlencode({'spam':1,'eggs':2,'bacon':0})
    >>> f=urllib.urlopen("http://python.org/query",parmas)
    >>> f.read()

    7.urllib.parse.parse_qs:

    复制代码
    >>> import urllib
    >>> params=urllib.urlencode({'spam':1,'eggs':2,'bacon':0})
    >>> params = { 'wd' : '刘德华' }
    >>> url = urllib.urlencode(params)
    >>> request = urllib.parse.parse_qs(url)
    复制代码

     

    8.urllib.parse和urlsplit:

    python3 urllib.parse 常用函数

     1.获取url参数

    • urlparse
    复制代码
    from urllib import parse
    
    url = "https://docs.python.org/3.5/library/urllib.parse.html?highlight=parse#module-urllib.parse"
    result = parse.urlparse(url)
    print(result.query)  # 获取返回结果参数内容
    print(parse.parse_qs(result.query))  # 结果转换成字典
    print(parse.parse_qsl(result.query))  # 结果转换成列表
    复制代码

    返回的结果

    2.url 编码

    • quote
    from urllib import parse
    print(parse.quote("@"))

    3.url 解码

    • unquote
    from urllib import parse
    print(parse.unquote("%40"))

    基本就这些,关于对象获取的方法就不赘述了。

     

     

    urllib.parse解析

  • 相关阅读:
    [luoguP1437] [HNOI2004]敲砖块(DP)
    [luoguP2073] 送花(set)
    [luoguP1783] 海滩防御(二分 || 最短路 || 最小生成树)
    [luoguP3068] [USACO13JAN]派对邀请函Party Invitations(stl大乱交)
    [luoguP1849] [USACO12MAR]拖拉机Tractor(spfa)
    数组
    String
    学不会的JVM
    异常
    反射
  • 原文地址:https://www.cnblogs.com/jasonLiu2018/p/10737259.html
Copyright © 2011-2022 走看看