iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python之进行URL编码案例讲解
  • 328
分享到

Python之进行URL编码案例讲解

2024-04-02 19:04:59 328人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

为什么要对URL进行encode 在写网络爬虫时,发现提交表单中的中文字符都变成了TextBox1=%B8%C5%C2%CA%C2%DB这种样子,观察这是中文对应的GB2312编码,

为什么要对URL进行encode

在写网络爬虫时,发现提交表单中的中文字符都变成了TextBox1=%B8%C5%C2%CA%C2%DB这种样子,观察这是中文对应的GB2312编码,实际上是进行了GB2312编码和urlencode。

那么为什么要对URL进行encode?

因为在标准的url规范中中文和很多的字符是不允许出现在url中的。为了字符编码(gbk、utf-8)和特殊字符不出现在url中,url转义是为了符合url的规范。

具体代码

urlencode编码:urllib中的quote方法


import urllib.parse
chinese_str = '中文'
# 先进行gb2312编码
chinese_str = chinese_str.encode('gb2312')
# 输出 b'\xd6\xd0\xce\xc4'
# 再进行urlencode编码
chinese_str_url = urllib.parse.quote(chinese_str)
# 输出 %D6%D0%CE%C4

urldecode解码:urllib中的unquote方法


# 由于编码问题会报错,还未解决
urllib.parse.unquote('%D6%D0%CE%C4')
# :的url编码为%3A,可输出 Http://www.baidu.com
urllib.parse.unquote('http%3A//www.baidu.com')

其它应用

URL中%u开头的字符

在网页的表单参数中,还遇到过%u开头的字符,得知是中文对应的Unicode编码值

这里写图片描述

以下代码可以实现字符与unicode编码值的转换


str = '姓名'
# 获得urlencode编码
str = str.encode('unicode_escape')
print(str)
# 输出 b'\\u59d3\\u540d'
str=str.decode('utf-8')
print(str)
# 输出 \u59d3\u540d
str=str.encode('utf-8')
print(str)
# 输出 b'\\u59d3\\u540d'
str=str.decode('unicode_escape')
print(str)
# 输出 姓名

hidden隐藏域对象作为表单参数

在爬取asp.net平台的网站信息时,有VIEWSTATE、EVENTVALIDATioN这样的hidden隐藏域对象,作为表单参数发送post请求,所以需要从网页源代码中获取。

但post请求中的参数值是URL编码值,而网页源码中获取到的是URL解码值,所以需要进行urlencode编码。

这里写图片描述

这里写图片描述

这里写图片描述

相关代码


# 网页源码上得到之后,需要urlencode编码
hid['VIEWSTATE'] = urllib.parse.quote(soup.find(id="__VIEWSTATE")['value'])

相关工具

谷歌浏览器的开发者工具中可以查看参数的urlencode和decode值

这里写图片描述

这里写图片描述

在线URL编码/解码工具

可选择编码格式为UTF-8或GB2312

汉字字符集编码查询

可查汉字的GB2312等中文编码和Unicode编码

参考链接

python中的urlencode和urldecode(代码)

到此这篇关于Python之进行URL编码案例讲解的文章就介绍到这了,更多相关Python之进行URL编码内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python之进行URL编码案例讲解

本文链接: https://www.lsjlt.com/news/132093.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python之进行URL编码案例讲解
    为什么要对URL进行encode 在写网络爬虫时,发现提交表单中的中文字符都变成了TextBox1=%B8%C5%C2%CA%C2%DB这种样子,观察这是中文对应的GB2312编码,...
    99+
    2024-04-02
  • Python进行区间取值案例讲解
    需求背景: 进行分值计算。如下图,如果只是一两个还好说,写写判断,但是如果有几十个,几百个,会不会惨不忍睹。而且,下面的还是三种情况。 例如: 解决: # 根据值、比较lis...
    99+
    2024-04-02
  • Java之网络编程案例讲解
    Java基础之网络编程 基本概念 IP:每个电脑都有一个IP地址,在局域网内IP地址是可变的。 网络通信协议:通信协议是对计算机必须遵守的规则,只有遵守这些规则,计算机之间才能进行通...
    99+
    2024-04-02
  • Python之urlencode和urldecode案例讲解
    python中的urlencode和urldecode python将字符串转化成urlencode ,或者将url编码字符串decode的方法: 方法1: urlencod...
    99+
    2024-04-02
  • js中如何对url进行编码和解码
    目录js 对url进行编码和解码三种编码和解码函数js url二次编码和解码问题URL编码解码原理js 对url进行编码和解码 三种编码和解码函数 encodeURI和 decode...
    99+
    2022-11-16
    js url js对url进行编码 js对url进行解码
  • Python URL编解码 encode
    urllib包中parse模块的quote和unquote from urllib import parse #这个是js的结果 # encodeURIComponent('中国') # "%E4%B8%AD%E5%9B%BD...
    99+
    2023-01-31
    编解码 Python URL
  • React+TypeScript进行项目构建案例讲解
        react项目构建可以很简单,但是如果是结合typescript,其实也不是很麻烦,官网也有很明确的说明。有两种办法:     1、直...
    99+
    2024-04-02
  • php之使用docker运行workerman案例讲解
    介绍 在docker上部署gatawayWorker项目,项目中使用到mysql,redis 安装 mysql 拉取镜像 docker pull mysql:5.7 运行容器 ...
    99+
    2024-04-02
  • js对url进行编码解码的方式有哪些
    使用encodeURIComponent()和decodeURIComponent()函数: // 编码 var encoded...
    99+
    2024-03-08
    JS
  • Java对URL进行编码和解码的两种方法
    使用java.net.URLEncoder和java.net.URLDecoder类 public class UrlEncoder { public static void main(Stri...
    99+
    2023-09-06
    java jvm 开发语言
  • Java之springcloud Sentinel案例讲解
    一、Sentinel是什么? Sentinel (分布式系统的流量防卫兵) 是阿里开源的一套用于服务容错的综合性解决方案。 它以流量为切入点,从流量控制、熔断降级、系统负载保护等多...
    99+
    2024-04-02
  • Java之字节码以及优势案例讲解
    一、Java编译器 Java中引入了虚拟机的概念,即在机器和编译程序之间加入了一层抽象的虚拟的机器,。这台虚拟的机器在任何平台上都提供给编译程序一个共同的接口。编译程序只需要面向虚拟...
    99+
    2024-04-02
  • js对url进行编码解码的三种方式总结
    目录第一种:escape 和 unescape第二种:encodeURI 和 decodeURI第三种:encodeURIComponent 和 decodeURIComponent...
    99+
    2023-02-14
    js url编码解码 url编码和解码 js转码和解码
  • Java对文件进行基本操作案例讲解
    File文件类 java.io.File是文件和目录的重要类(JDK6及以前是唯一) 目录也使用File类进行表示 File类与操作系统无关,但会受到操作系...
    99+
    2024-04-02
  • JavaWeb之监听器案例讲解
    1. 监听器 实现一个监听器的接口;(有n种监听器) 1.1 编写一个监听器(实现监听器接口) OnlineCountListener .java package com.tia...
    99+
    2024-04-02
  • Java之操作Redis案例讲解
    首先 下载 jedis.jar包 然后再 工程设置里面找到Libraries,点击+。添加下载好的jedis.jar包。点击OK退出即可 创建Java_Control_Redis类...
    99+
    2024-04-02
  • Java之String.format()方法案例讲解
    前言:  String.format()作为文本处理工具,为我们提供强大而丰富的字符串格式化功能,这里根据查阅的资料做个学习笔记,整理成如下文章,供后续复习查阅。 一. f...
    99+
    2024-04-02
  • python代码实现备忘录案例讲解
    文件操作 TXT文件 读取txt文件 读取txt文件全部内容: def read_all(txt): ...: with open(txt,'r') as f: ...
    99+
    2024-04-02
  • php之Aes加密案例讲解
    在项目中,尤其是pc端的时候,我们在用户登录后会给前端返回一个标识,来判断用户是否登录,这个标识大多数都是用户的id ​      ...
    99+
    2024-04-02
  • python之json文件转xml文件案例讲解
    json文件格式 这是yolov4模型跑出来的检测结果result.json 下面是截取的一张图的检测结果 { "frame_id":1, #图片的序号 "filename...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作