精华内容
下载资源
问答
  • 2019-08-23 09:32:51

    我们在爬虫时,url链接中含有中文时,会自动被编码为特殊符号,因此我们需要对中文进行编码操作,同时也有可能涉及到对url编码后的中文进行解码操作。

    中文转换为url格式

    from urllib.request import quote
    
    x = '角色扮演'
    print(quote('角色扮演'))
    

    输出结果为:

    %E8%A7%92%E8%89%B2%E6%89%AE%E6%BC%94
    

    将编码后的中文构造成完整url,借助字符串的format方法:

    url = 'https://www.taptap.com/ajax/search/tags?&kw={}&sort=hits&page=2'.format(quote(x))
    print(url)
    

    输出结果为

    https://www.taptap.com/ajax/search/tags?&kw=%E8%A7%92%E8%89%B2%E6%89%AE%E6%BC%94&sort=hits&page=2
    

    将url中编码后的中文进行解码

    from urllib import parse
    
    y = '%E8%A7%92%E8%89%B2%E6%89%AE%E6%BC%94'
    print(parse.unquote(y))
    

    输出结果为:

    角色扮演
    
    更多相关内容
  • url编码gbk格式

    2018-10-13 16:37:39
    url编码工具,进行gbk格式编码,内涵两个工具类,可以用两种方式编码
  • URL编码/解码详解

    千次阅读 2022-03-10 12:04:23
    URL 路径或者查询参数中,带有中文或者特殊字符的时候,就需要对 URL 进行编码(采用十六进制编码格式)。URL 编码的原则是使用安全字符去表示那些不安全的字符。 安全字符,指的是没有特殊用途或者特殊意义的...

    URL编码/解码详解

    当 URL 路径或者查询参数中,带有中文或者特殊字符的时候,就需要对 URL 进行编码(采用十六进制编码格式)。URL 编码的原则是使用安全字符去表示那些不安全的字符。

    安全字符,指的是没有特殊用途或者特殊意义的字符。

    URL基本组成

    URL 是由一些简单的组件构成,比如协议、域名、端口号、路径和查询字符串等,示例如下:

    http://www.ccc.net/index?param=10
    

    路径和查询字符串之间使用问号?隔开。上述示例的域名为 www.ccc.net,路径为 index,查询字符串为 param=1。

    URL 中规定了一些具有特殊意义的字符,常被用来分隔两个不同的 URL 组件,这些字符被称为保留字符。例如:

    冒号:用于分隔协议和主机组件,斜杠用于分隔主机和路径

    ?:用于分隔路径和查询参数等。

    =用于表示查询参数中的键值对。

    &符号用于分隔查询多个键值对。

    其余常用的保留字符有:/ . … # @ $ + ; %

    哪些字符需要编码

    URL 之所以需要编码,是因为 URL 中的某些字符会引起歧义,比如 URL 查询参数中包含了”&”或者”%”就会造成服务器解析错误;再比如,URL 的编码格式采用的是 ASCII 码而非 Unicode 格式,这表明 URL 中不允许包含任何非 ASCII 字符(比如中文),否则就会造成 URL 解析错误。

    URL 编码协议规定(RFC3986 协议):URL 中只允许使用 ASCII 字符集可以显示的字符,比如英文字母、数字、和- _ . ~ ! *这 6 个特殊字符。当在 URL 中使用不属于 ASCII 字符集的字符时,就要使用特殊的符号对该字符进行编码,比如空格需要用%20来表示。

    除了无法显示的字符需要编码外,还需要对 URL 中的部分保留字符和不安全字符进行编码。下面列举了部分不安全字符:

    [ ] < > " " { } | \ ^ * · ‘ ’ 等

    下面示例,查询字符串中包含一些特殊字符,这些特殊字符不需要编码:

    http://www.ccc.net/index?param=10!*&param1=20!-~_
    

    下表对 URL 中部分保留字符和不安全字符进行了说明:

    URL特殊字符编码

    字符含义十六进制值编码
    +URL 中 + 号表示空格%2B
    空格URL中的空格可以编码为 + 号或者 %20%20
    /分隔目录和子目录%2F
    ?分隔实际的 URL 和参数%3F
    %指定特殊字符%25
    #表示书签%23
    &URL 中指定的参数间的分隔符%26
    =URL 中指定参数的值%3D

    下面简单总结一下,哪些字符需要编码,分为以下三种情况:

    ASCII 表中没有对应的可显示字符,例如,汉字。 不安全字符,包括:# ”% <> [] {} | \ ^ ` 。 部分保留字符,即 &
    / : ; = ? @ 。

    Python实现编码与解码

    Python 的标准库urllib.parse模块中提供了用来编码和解码的方法,分别是 urlencode() 与 unquote() 方法。

    方法说明
    urlencode()该方法实现了对 url 地址的编码操作
    unquote()该方法将编码后的 url 地址进行还原,被称为解码

    1) 编码urlencode()

    下面以百度搜索为例进行讲解。首先打开百度首页,在搜索框中输入“爬虫”,然后点击“百度一下”。当搜索结果显示后,此时地址栏的 URL 信息,如下所示:

    https://www.baidu.com/s?wd=爬虫&rsv_spt=1&rsv_iqid=0xa3ca348c0001a2ab&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_dl=ib&rsv_sug3=8&rsv_sug1=7&rsv_sug7=101
    

    可以看出 URL 中有很多的查询字符串,而第一个查询字符串就是“wd=爬虫”,其中 wd 表示查询字符串的键,而“爬虫”则代表您输入的值。

    在网页地址栏中删除多余的查询字符串,最后显示的 URL 如下所示:

    https://www.baidu.com/s?wd=爬虫
    

    使用搜索修改后的 URL 进行搜索,依然会得到相同页面。因此可知“wd”参数是百度搜索的关键查询参数。下面编写爬虫程序对 “wd=爬虫”进行编码,如下所示:

    #导入parse模块
    from urllib import parse
    #构建查询字符串字典
    query_string = {
    'wd' : '爬虫'
    }
    #调用parse模块的urlencode()进行编码
    result = parse.urlencode(query_string)
    #使用format函数格式化字符串,拼接url地址
    url = 'http://www.baidu.com/s?{}'.format(result)
    print(url)
    

    输出结果,如下所示:

    wd=%E7%88%AC%E8%99%AB
    http://www.baidu.com/s?wd=%E7%88%AC%E8%99%AB
    

    编码后的 URL 地址依然可以通过地网页址栏实现搜索功能。

    除了使用 urlencode() 方法之外,也可以使用 quote(string) 方法实现编码,代码如下:

    from urllib import parse
    #注意url的书写格式,和 urlencode存在不同
    url = 'http://www.baidu.com/s?wd={}'
    word = input('请输入要搜索的内容:')
    #quote()只能对字符串进行编码
    query_string = parse.quote(word)
    print(url.format(query_string))
    

    输出结果如下:

    输入:请输入要搜索的内容:编程帮www.biancheng.net
    输出:http://www.baidu.com/s?wd=%E7%BC%96%E7%A8%8B%E5%B8%AEwww.biancheng.net
    

    注意:quote() 只能对字符串编码,而 urlencode() 可以直接对查询字符串字典进行编码。因此在定义 URL 时,需要注意两者之间的差异。方法如下:

    # urllib.parse
    urllib.parse.urlencode({'key':'value'}) #字典
    urllib.parse.quote(string) #字符串
    

    2) 解码unquote(string)
    解码是对编码后的 URL 进行还原的一种操作,示例代码如下:

    from urllib import parse
    string = '%E7%88%AC%E8%99%AB'
    result = parse.unquote(string)
    print(result)
    

    输出结果:

    爬虫
    

    3) URL地址拼接方式
    最后,给大家介绍三种拼接 URL 地址的方法。除了使用 format() 函数外,还可以使用字符串相加,以及字符串占位符,总结如下:
    纯文本复制

    # 1、字符串相加
      baseurl = 'http://www.baidu.com/s?'
      params='wd=%E7%88%AC%E8%99%AB'
      url = baseurl + params
    # 2、字符串格式化(占位符)
      params='wd=%E7%88%AC%E8%99%AB'
      url = 'http://www.baidu.com/s?%s'% params
    # 3、format()方法
      url = 'http://www.baidu.com/s?{}'
      params='wd=%E7%88%AC%E8%99%AB'
      url = url.format(params)
    
    展开全文
  • vb url编码解码vb url编码解码vb url编码解码
  • URL编码

    千次阅读 2020-12-31 10:55:55
    url编码是一种浏览器用来打包表单输入的格式 URL编码与解码 最近做题经常碰到二次编码绕过,于是打算系统总结一下关于URL编码 相关内容 为什么URL编码 URL之所以要编码是因为URL中有些字符会引起歧义 情况一url...

    什么是URL编码

    url编码是一种浏览器用来打包表单输入的格式

    URL编码与解码

    最近做题经常碰到二次编码绕过,于是打算系统总结一下关于URL编码
    相关内容

    为什么URL要编码

    URL之所以要编码是因为URL中有些字符会引起歧义

    情况一url参数字符串使用key=value键值来传参,键值之间用&分隔,如/?admin=123&password=123可是如果是/?admin=12=3&password=12&3这样value字符串包含了=或&,会造成接收Url服务器解析错误,所以必须要将&和=进行转义
    情况二url的编码格式是ASCII码,而不是Unicode,也就是说Url中不能包含中文

    编码原则

    使用安全字符(没有特殊意义或者特殊意义的可打印字符)表示不安全字符

    哪些字符需要编码

    url中只允许包含英文字母(a-zA-Z)、数字(0-9)、特殊字符-_.~、保留字符(: / ? # [ ] @ ! $ & ’ ( ) * + , ; =)
    不安全字符和US-ASCII码中的非可打印字符(10-7F字节表示控制字符,80-FF字节的字符)

    关于保留字符

    (: / ? # [ ] @)用于分隔不同组件

    • :用于分隔协议和主机
    • /用于分隔主机和路径
    • ?用于分隔路径和查询参数

    (!$&’()*+,;=)用于在每个组件中起到分隔作用

    • =用于 表示查询参数中的键值对
    • &符号用于分隔查询多个键值对
      特别的组件中的普通数据包含这些数据时,需要对其进行编码

    关于不安全字符

    不安全字符:可能会引起解析程序的歧义的字符

    • 空格:Url在传输的过程,或者用户在排版的过程,或者文本处理程序在处理Url的过程,都有可能引入无关紧要的空格,或者将那些有意义的空格给去掉
    • 引号以及<>:引号和尖括号通常用于在普通文本中起到分隔Url的作用
    • #:通常用于表示书签或者锚点
    • %:百分号本身用作对不安全字符进行编码时使用的特殊字符,因此本身需要编码(经常被拿来做考点比如结合urldecode()的二次编码绕过,当传入参数时,浏览器在后面会对非ASCII码的字符(比如中文)进行一次urlencode
      然后在这段代码中运行时,会自动进行一次urldecode将先前urlencode的码给解码了
    • {}|^[]`~:某一些网关或者传输代理会篡改这些字符

    三个编码函数

    escape,encodeURI,encodeURIComponent——均用于将不安全不合法的url字符转换为合法的字符表示

    不同点:

    • 安全字符不同(函数不会对这些字符进行编码)
      • escape(69个):*/@±._0-9a-zA-Z
      • encodeURI(82个):!#$&’()*+,/:;=?@-._~0-9a-zA-Z
      • encodeURIComponent(71个):!’()*-._~0-9a-zA-Z
    • 兼容性不同
    • 对Unicode字符的编码方式不同
    • 适用场合不同:encodeURI被用作对一个完整的URI进行编码,而encodeURIComponent被用作对URI的一个组件进行编码

    最后是常用的编码表
    放到这方便查

    展开全文
  • URL编码格式

    千次阅读 2015-08-27 13:04:21
    - (NSString *)stringByAddingPercentEscapesUsingEncoding:(NSStringEncoding)enc;.../* Adds all percent escapes necessary to convert the receiver into a legal URL string. Uses the given encoding to d
    - (NSString *)stringByAddingPercentEscapesUsingEncoding:(NSStringEncoding)enc;

    原文解释:
    /* Adds all percent escapes necessary to convert the receiver into a legal URL string. Uses the given encoding to determine the correct percent escapes (returning nil if the given encoding cannot encode a particular character). See CFURLCreateStringByAddingPercentEscapes in CFURL.h for more complex transformations
    */
    翻译:
     添加所有必要逃百分比将接收器转化为一个合法的URL字符串。使用给定的编码来确定正确的百分比逃(返回零如果给定的编码不能编码特定的字符)。看到CFURL CFURLCreateStringByAddingPercentEscapes。对于更复杂的转换

    - (NSString *)stringByAddingPercentEscapesUsingEncoding:(NSStringEncoding)enc;

    原文解释:
    /* Replaces all percent escapes with the matching characters as determined by the given encoding. Returns nil if the transformation is not possible (i.e. the percent escapes give a byte sequence not legal in the given encoding). See CFURLCreateStringByReplacingPercentEscapes in CFURL.h for more complex transformations
    */
    翻译:
      替换所有匹配字符的转义百分比由给定的编码。返回零如果转换是不可能的(即百分比逃给一个字节序列在给定的编码不合法)。看到CFURL CFURLCreateStringByReplacingPercentEscapes。对于更复杂的转换
    我们拿到后台的URL进行拼接后有时候会发现有些不能编码成功
    所有我们要进行处理

    还有什么不能明白的可以关注我 然后提处理我们一起coding

    展开全文
  • JS实现URL编码转换中文
  • javascript怎么对url进行编码转换

    万次阅读 2022-01-14 17:34:30
    javascript对url进行编码转换的方法: 1、使用encodeURI()函数,可把字符串作为URI进行编码; 2、使用encodeURIComponent()函数,可把字符串作为URI组件进行编码。 项目中url遇到传参数传数组对象解析失败问题,...
  • 用开源的JAR包分析 不多说了 工作中用的比较多
  • HTML URL 编码 参考手册

    2020-12-13 20:18:14
    URL 编码会将字符转换为可通过因特网传输的格式。   URL – 统一资源定位器 Web 浏览器通过 URL 从 web 服务器请求页面。 URL 是网页的地址,比如: http://www.mscto.com。 URL 编码 URL 只能使用 ASCII 字符集来...
  • } int main() { //进行URL编码 纯英文 对于不带中文的字符转的码ansi和utf8是一样的 string str1 = "=;+/,"; string str1_url = UrlEncode(str1); cout << str1_url ; //对于带中文的ansi 编码和解码 string ...
  • HTTP协议压缩格式URL编码介绍

    千次阅读 2020-12-17 08:05:00
    使用python脚本对某个字符串进行url编码解码: import urllib str='%E4%BD%A0%E5%A5%BD' print(urllib.unquote(str)) #你好 print(urllib.quote("你好")) #%E4%BD%A0%E5%A5%BD 使用fiddler工具栏Tools下的...
  • URL编码和解码

    千次阅读 2021-03-05 15:49:30
    1 为什么要URL编码在因特网上传送URL,只能采用ASCII字符集也就是说URL只能使用英文字母、阿拉伯数字和某些标点符号,不能使用其他文字和符号,即只有字母和数字[0-9a-zA-Z]、一些特殊符号$-_.+!*'()[不包括双引号]...
  • Go语言URL编码方案

    千次阅读 2020-09-02 22:47:32
    URL编码也称为 Percent encode,将不可打印、保留或非ASCII字符的字符串转换为可以在Internet上传输的通用格式 URL编码查询字符串 Go的net/url程序包包含一个内置方法QueryEscape,该方法称为转义/编码字符串,以便...
  • iOS常用方法——URL编码URL解码

    万次阅读 2018-06-21 15:25:04
    URL编码是一种常见的编码方式,作用不多说,直接上代码。 URL编码: - (NSString *)URLEncodedString { // CharactersToBeEscaped = @":/?&amp;=;+!@#$()~',*"; // ...
  • HTML URL 编码大全(十六进制格式

    千次阅读 2018-10-17 17:57:36
    下面是用 URL 编码形式表示的 ASCII 字符(十六进制格式)。 十六进制格式用于在浏览器和插件中显示非标准的字母和字符。 URL 编码 - 从 %00 到 %8f ASCII Value URL-encode ASCII Value URL-encode ...
  • java中的url进行编码和解码

    千次阅读 2021-11-08 21:56:37
    URLEncoder.decode(url,编码格式) 将普通字符串变成指定格式的字符串, package com.zixue.springbootmybatis.test; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.net....
  • 有时候服务端返回的数据是Url编码后的json数据,用Postman测试接口看返回值很不方便,用Postman的Tests脚本功能可以比较方便的观察返回值 首先在Postman的Tests对话框输入以下脚本 pm.test('urlDecode',function() { ...
  • 为什么需要URL编码? 根据网络标准RFC 1738的硬性规定: "只有字母和数字[0-9a-zA-Z]、一些特殊符号"$-_.+!*'(),"[不包括双引号]、以及某些保留字,才可以不经过编码直接用于URL。" 即URL不支持汉字,[] 等...
  • 百度搜索-url编码

    千次阅读 2019-05-30 11:38:44
    百度搜索编码格式与国际上面其他搜索的格式有所不同,比如google的是UTF-8,但是百度使用的是GB2312编码。 应用场景 在爬虫当中我们经常需要组装url来进行页面的爬虫,这个时候我们就需要把搜索的关键字编码为...
  • URL编码方式

    千次阅读 2019-02-23 10:16:42
    定义-什么叫URL编码 URL编码是一种将不可打印字符或特殊字符转换成可以被服务器和浏览器接收的字符。可用于对URN(统一资源命名符),URI(统一资源标识符)(HTML里的ID),URL(统一资源定位符)进行信息编码格式就是%...
  • js对url编码与解码

    万次阅读 2018-09-28 15:05:05
    在前端工作中,偶尔会遇到url编码与解码,比如:在微信授权登录的时候,需要将url进行编码写入,再比如:在PC端显示小表情的时候,会用到对url解码解析表情。那么,有哪些编码解码方式呢,常用的是哪些呢? 1.为...
  • http接口中url参数编码和解码

    千次阅读 2021-12-28 12:14:13
    编码url安全的str 过程:bytes -> base64 -> str -> quoted_str import base64 from urllib.parse import quote,unquote # 编码为 fid = open('49.wav', 'rb') A = fid.read() # fbyte B = base64.b64...
  • Unity url编码转换

    千次阅读 2022-04-27 18:14:51
    untiy url编码转换
  • 终于知道什么是URL编码

    千次阅读 2019-05-14 17:06:55
    url编码是一种浏览器用来打包表单输入的格式。浏览器从表单中获取所有的name和其中的值 ,将它们以name/value参数编码(移去那些不能传送的字符,将数据排行等等)作为URL的一部分或者分离地发给服务器. 含义:一种...
  • URL编码与解码原理

    万次阅读 2018-08-22 20:20:16
    URL地址里包含非西欧字符的字符串时,系统会将这些字符转换成application/x-www-form-urlencoded字符串。 表单里提交时也是如此,当包含非西欧字符的字符串时,系统也会将这些字符转换成applicatio...
  • C语言实现url编码和解码

    万次阅读 2017-01-07 18:19:20
    url提交信息为何要转码呢?因为url本身会有很多特殊字符。...更多详情请看:《关于URL编码》 本文代码为从PHP代码中修改而来,只保留了2个函数。 字符’a’-‘z’,’A’-‘Z’,’0’-‘9’,’...
  • 很简单!String str = "你好"; String result = URLEncoder.encode(str, "utf-8");
  • 淘宝url中的spm编码是怎么生成的?生成使用了什么技术?是怎么回事呢 越详细越好。 下面是SPM淘宝说明: SPM是淘宝社区电商业务(xTao)为外部合作伙伴(外站)提供的一套跟踪引导成交效果数据的解决方案。 ...
  • 本篇文章主要介绍了python实现中文及其他字符转换url编码的方法,结合实例形式分析了Python针对中文的gbk与utf-8编码转换的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下 今天做一个外贸电商网站上的商品明细...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 347,787
精华内容 139,114
关键字:

url格式编码