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函数
试试如下代码

[python] view plaincopy

  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格式编码的字符串

[python] view plaincopy

  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

[python] view plaincopy

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

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

[python] view plaincopy

  1. urlparse.urlparse(myurl)

当然也有对应的反函数urlunparse

时间: 2024-12-08 01:31:15

URL的转义和解析的相关文章

php url字符转义操作

遇到一段代码,从数据库里读出来带 \ 字符 需要转义成中文~ 用到url_decode(); 1 //$info 为刚从数据库中读取的二维数组 2 3 foreach($info as $key1 => &$value1) { 4 foreach($key1 as $key2 => &$value2) { 5 if($key2 == 'url转义字段' ) //判断是否是要转义的字段 6 { 7 $value = url_decode(str_replace('\\','%',

django url别名和反向解析 命名空间

url别名和反向解析 我们平时写的url名字都是死的,如果项目过大,需要项目中某个文件名改动一下,那么改动起来就不是一般的麻烦了,所以我们就在定义的时候给url起一个别名,以后不管哪个文件中运用都是用它的别名,这样就方便多了,你的路径名不管怎么改变都不会影响你的操作 如何给你url起别名 url(r'^home1/',views.home,name='home'), # 像这样,在url后边加一个name叫做home,之后再其他的文件中需要引用这个url就可以直接使用别名 url(r'^home

Django之url上的include,URL命名和反向解析,命名空间 以及图书管理系统删除功能二合一方法

include其他的URLconfs #At any point, your urlpatterns can "include" other URLconf modules. This #essentially "roots" a set of URLs below other ones. #For example, here's an excerpt of the URLconf for the Django website itself. #It include

小程序url后面参数的解析

获取跳转的参数 1.在小程序中经常用到点击跳转的操作 并且需要传递参数 例如 wx.navigateTo({ url: '../payDetails/payDetails?activity_id=' + self.data.order_id + '&isfirst=' + self.data.isfirst, }) 拿到这些参数是在ayDetails页面onload里面拿到 onLoad: function (options) { console.log(options) } 这样就能拿到对应的

将url的查询参数解析成字典对象

1.先截取请求参数字符串: 2.使用decodeURIComponent函数进行解码: 3.正则匹配出参数对象: function getQueryObject(url) { url = url == null ? window.location.href : url; var search = url.substring(url.lastIndexOf("?") + 1); var obj = {}; var reg = /([^?&=]+)=([^?&=]*)/g;

LUA 捕获模式 URL编码的例子解析

function escape(s) s=string.gsub(s,"([&=+%c])",function(c) return string.format("%%%02X",string.byte(c)) end ) s=string.gsub(s," ","+") return s end 第一个gsub , [ ]中 匹配 & = + 及其他符号 %c 中的任意一个 替换为 格式化成 以 % 开头的(%

关于iOS URL缓存机制原理解析

关于URL缓存机制中   利用request对象判断是否缓存   其实request是否相等的判断依据是URLString是否相等

php urlencode()函数URL编码转换实例解析

URLEncode:是对网页url所包含中文字符的一种编码转化方式,URLEncode有两种常见方式,一种是基于GB2312的 Encode(Baidu.Yisou等搜索引擎使用),另一种是基于UTF-8的Encode(Google.Yahoo等使用).下面来看两种方式的 Encode与Decode的区别: 中文 -> GB2312的Encode -> %D6%D0%CE%C4 中文 -> UTF-8的Encode -> %E4%B8%AD%E6%96%87 Html网页中的URL

url特殊字符转义及解决方法

做页面开发的时候有时候,会使用JavaScript的escape(),encodeURIComponent(),encodeURI ()这三个函数进行URL编码,防止特殊字符接收不到. 解决方法:就是把客服端中带有特殊字符的参数替换成另一些代替的参数,如下所示 1.+ URL 中+号表示空格 %2B 2.空格 URL中的空格可以用+号或者编码 %20 3. / 分隔目录和子目录 %2F 4. ? 分隔实际的 URL 和参数 %3F 5. % 指定特殊字符 %25 6.# 表示书签 %23 7.