zoukankan      html  css  js  c++  java
  • URL的转义和解析

    在开始python编程之前我们先来看看一个关与url的知识
    在url中会有一些特殊字符,如果你写过cgi程序,并且提交一个表单去调用你的cgi,你会很清楚的
    像?name=aiqier&age=21这样的参数传递
    下面总结一下常见的url特殊字符的含义

    空格换成加号(+)
    正斜杠(/)分隔目录和子目录
    问号(?)分隔URL和查询
    百分号(%)制定特殊字符
    #号指定书签
    &号分隔参数

    如果需要在URL中用到,需要将这些特殊字符换成相应的十六进制的值
    字符                                    URL编码值
                空格                                        %20
                  "                                          %22
                  #                                          %23
                 %                                         %25
                 &                                          %26
                  (                                          %28
                 )                                           %29
                +                              %2B
                 ,                                           %2C
                 /                                           %2F
                 :                                           %3A
                 ;                                           %3B
                <                                           %3C
                =                                           %3D
                >                                           %3E
                 ?                                           %3F
                @                                           %4o
                                                            %5C
                 |                                           %7C

     

    现在问题来了,如果你的参数本身就有像”&”这样的字符,肿么办?
    比如name=aiqier&liu&age=21(说明,aiqier&liu和21是我要传递的参数)
    所以我们要对url的字符进行转义用到urllib.quote函数
    试试如下代码

    1. myurl = 'http://www/~wo/lai-le/he.py?name=tom&age=6'  
    2. urllib.quote(myurl)  


    quote和quote_plus差不多,quote_plus会把空格转义成+号,你可以试试

    当然python为我们提供了对应的反函数,我们可把那些字符解码
    urllib.unquote和urllib.unquote_plus()

    urllib.urlencode把映射(键值对)转化成url格式编码的字符串

    1. myarg = {'name':'aiqier','age':'&15'}  
    2. urllib.urlencode(myarg)  


     

    你会发现,它同时也调用了quote_plus()进行编码

    对url字符串的操作urlparse模块

    你在学习string时会遇到什么join,split之类的函数,在学习文件操作时,会遇到跟文件路径有关的join函数,split函数
    所以在对url操作是你会遇到一个urljoin,你是不是已经猜到它的作用了?

    urljoin(baseurl,newurl)将baseurl和newurl合并成一个完整的url

    1. urlparse.urljoin('http://www.myweb.com/something.html','but/not/anything.html')  


    urlparse.urlparse对url字符拆分成各个部件
    url的结构是这样的:
    协议://授权/路径;参数?连接符#拆分文档中的特殊锚

    1. urlparse.urlparse(myurl)  

    当然也有对应的反函数urlunparse

  • 相关阅读:
    uni-app调用原生的文件系统管理器(可选取附件上传)
    uni-app图片压缩转base64位 利用递归来实现多张图片压缩
    解释器模式
    外观模型
    装饰模式
    组合模式
    原型模式
    简单工厂模式
    抽象工厂模式
    工厂方法模式
  • 原文地址:https://www.cnblogs.com/timssd/p/4735284.html
Copyright © 2011-2022 走看看