python url解码详解
-
-
python url解码
url是数据的一个部分,一般会用来做什么呢?比如网站的 URL,比如搜索引擎中的 url,再比如网页中的图片等。 你也许不知道,在 Web页面中的图片、链接、超链接都是 URL,也就是 url。 而如果想要读取 URL,我们就需要将它解码出来,然后才能把它读出。现在网上有很多教程都可以教你如何解码 url。但事实上,在实际开发过程中,我们并不需要了解所有的代码知识。我们只需要知道一些基本知识就可以了。
-
一、 url的含义
在上面的图片中,我们可以看到,其实 url只是一个指向网页的地址,但是这个地址并不是一个网页,而是一个网页的链接。 为什么 url是一个网页链接呢?这要从 url的含义说起。 url (网址)是 HTTP协议的一部分, URL (URLs)是 HTTP协议中使用的一种结构化数据,在 HTTP协议中, URL用来指定服务器的位置和地址,可以告诉浏览器从哪个页面读取这个信息。我们可以从以下两个方面理解 url: 首先,我们可以在浏览器中查看 URL。这时你会发现你所访问的 Web页面在 URL中已经给出了这个 URL。 其次,我们还可以通过调用网页上的代码来获取 url。这时,这个 url就是由我们在浏览器中找到并调用的网页代码生成的。 接下来,我们将使用 Python中的一个函数来解码 url。它会将 url转换为文本格式(text)并输出到一个文本文件中。
-
二、解码流程
现在,我们已经了解了 url的基本知识,那么接下来,我们就可以开始解码 url了。 首先,我们需要将 url的原始内容进行读取,也就是把它转换成字符串。所谓字符串,就是一个字符组合。比如上面的代码中,我们已经把 url转换成了字符串。 接下来,我们需要根据内容的不同来进行分类。比如图片可以分为 JPG和 PNG两种格式,而超链接则可以分为 HTML和 XML两种格式。 对于 JPG格式的图片来说,它是由三个部分组成的: 其中一个是图片本身,还有一个是图片上面的文字内容,还有一个是图片下面的说明文字。如果我们把这三部分分别单独地提取出来进行解码的话,那么对于 JPG格式的图片来说,我们就可以对它进行解码了。 对于 HTML格式的超链接来说,它包括两个部分: 其中一个部分是超链接本身,另外一个部分是超链接下面的描述文字。我们只需要把这两个部分分别提取出来就可以了。 其中第一个和第三个是两个独立的文本内容。 第二个则是超链接到下面的描述文字。也就是说,当我们在文本内容中提取出了超链接时,我们就可以对它进行解码了。 因为在很多情况下,我们在输入 URL时可能会将不同格式的文本内容同时输入进来。所以如果我们要对每一种文本进行解码的话,那么就需要一个函数来完成这些操作。 当我们有了函数之后,接下来就可以进行实际应用了。首先,我们可以先通过输出结果来确定一个大概范围;其次可以使用函数来对 url中的关键字进行提取;最后可以使用函数来对文本内容进行解码。
-
三、代码实现
虽然上面的代码没有什么问题,但我们仍然需要自己实现一个完整的 url解码程序,这个代码在网上也有很多教程可以参考。 在上面的代码中,我们首先引入了一个新的对象: data. add ();然后我们将 url数据放入这个对象中,并返回了一个数值。当我们在浏览器中输入 url地址时,浏览器就会把这个数值转换成字符串。字符串的长度是由我们设置的。如果想要让字符串更长一些,我们可以将它设置成字符串的两倍。 接下来,我们把这些字符串放入 data. add ()对象中,并将其输出中。但是需要注意的是,输出中不能包含空格、下划线等特殊符号,因为这些符号可能会导致输出结果不正确。另外,如果你想要输出结果更丰富一些的话,你可以在上面的代码中增加一些特殊的数据类型。 最后,你可以通过编写一个测试程序来验证一下效果如何。
-
四、小结
最后我们来总结一下这节课的内容。 首先,我们先要明确一个概念: url就是网址,但是它并不是一个文件,而是一个 URL。 其次,我们需要了解一下 url的结构: 接下来,我们要知道的是,在 url中有很多不同的类型,比如URL_Type、URL_Types ype等等。如果你对它们之间的区别不了解,那么可能会出错。 接下来,我们要了解一下什么是 dll文件。 dll文件是一些可以在运行时加载的动态链接库,这些库的内容可以被安装在 Windows系统的设备上。因此,在实际开发过程中,我们通常都会使用 dll文件。 如果你想要把这些数据都读取出来,那么你就需要先对它们进行解码。 接着,我们要知道一个事实:如果你想读取一个文件中所有的文本数据(比如一段话、一段文字、一张图片等等),那么你就需要使用不同的方法去解码这些文本数据。因此我们需要学习如何使用各种不同的方法来读取这些文本数据。 接下来就让我们一起开始吧!
-
五、参考资料
1.《Python网络爬虫》 2.《网络爬虫实战:从入门到精通》
-
-
常用的python url解码代码 :
-
1. 使用urllib库的unquote方法进行url解码:
```python
import urllib
url = "https://www.example.com/?q=%E6%9D%8E%E5%9B%9B"
decoded_url = urllib.parse.unquote(url)
print(decoded_url)
```
输出结果为:https://www.example.com/?q=李四
2. 使用requests库的unquote方法进行url解码:
```python
import requests
url = "https://www.example.com/?q=%E6%9D%8E%E5%9B%9B"
decoded_url = requests.utils.unquote(url)
print(decoded_url)
```
输出结果为:https://www.example.com/?q=李四
3. 使用urllib.parse.unquote_plus方法进行url解码,该方法会将空格解码为加号:
```python
import urllib.parse
url = "https://www.example.com/?q=%E6%9D%8E%E5%9B%9B+%E5%8A%A0%E5%8A%A0"
decoded_url = urllib.parse.unquote_plus(url)
print(decoded_url)
```
输出结果为:https://www.example.com/?q=李四+加加
相关文章:

python url解码详解
python url解码 url是数据的一个部分,一般会用来做什么呢?比如网站的 URL,比如搜索引擎中的 url,再比如网页中的图片等。 你也许不知道,在 Web页面中的图片、链接、超链接都是 URL,也就是 url。 而如果想要…...
leetcode102:二叉树的层序遍历
给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]] 示例 2: 输入…...

深度学习openMMLab的介绍和使用
文章目录MMCV介绍MMCV的安装修改链接中的cu113修改链接中的torch1.10.0物体分类MMCLS源码下载配置参数解读配置文件的组成如何生成完整配置文件定义自己的数据集构建自己的数据集训练自己的任务物体检测MMDetection语义分割MMSegmentation姿态估计MMPose未完成,持续…...

【vue2】axios请求与axios拦截器的使用详解
🥳博 主:初映CY的前说(前端领域) 🌞个人信条:想要变成得到,中间还有做到! 🤘本文核心:当我们在路由跳转前与后我们可实现触发的操作 【前言】ajax是一种在javaScript代码中发请…...

文件上传都发生了啥
一直在用组件库做文件上传,那里面的原理到底是啥,自己写能不能写一个upload框出来呢? (一)基本原理 浏览器端提供了一个表单,在用户提交请求后,将文件数据和其他表单信息编码并上传至服务器端࿰…...

【vim进阶】vim编辑器的多文件操作(如何打开多个文件,如何进行文件间的切换,如何关闭其中的某一个文件)
一、如何打开多个文件? 方法一:启动打开 现在有多个文件 file1 ,file2 , … ,filen. 现在举例打开两个文件 file1,file2 vim file1 file2该方式打开文件,显示屏默认显示第一个文件也就是 file1。 方法二ÿ…...

ToBeWritten之车辆通信
也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 转移发布平台通知:将不再在CSDN博客发布新文章,敬…...
自定义 Jackson 的 ObjectMapper, springboot多个模块共同引用,爽
springboot多个模块共同引用自定义ObjectMapper 🚃统一配置示例自定义 Jackson 的 ObjectMapper更改时区为东八区, 优点是在多个模块中都可以使用同一种方式来进行配置,方便维护和修改 统一配置 假设有一个 Spring Boot 项目,包含多个模块&…...

【面试】Redis面试题
文章目录概述什么是Redis?Redis有哪些优缺点?使用redis有哪些好处?为什么要用 Redis / 为什么要用缓存为什么要用 Redis 而不用 map/guava 做缓存?Redis为什么这么快Redis的应用场景持久化什么是Redis持久化?Redis 的持久化机制是…...

前端后端交互系列之原生Ajax的使用
目录前言一,Ajax概述二,基础知识之Http协议2.1 请求报文2.2 响应报文2.3 如何查看通信报文三,Ajax简单案例3.1 Express框架创建服务端3.2 Ajax案例后台准备3.3 Ajax案例前台准备3.4 发送get请求3.5 发送带有参数的Ajax请求3.6 发送post请求3.…...

openGauss 5.0企业版主从部署,实战狂飙
📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜&am…...
Vue中props组件和slot标签的区别
在 Vue 中,props 和 slot 都是组件之间进行通信的机制,它们的作用和应用场景有一些区别: props 是一种组件的数据传递机制,通过在父组件中以属性的形式向子组件传递数据。子组件接收这些数据,并可以进行相应的处理和渲…...

基于Windows下VSCode搭建Vue开发环境
一、准备工作 VSCode编辑器安装:https://code.visualstudio.com/Node.js安装:https://blog.csdn.net/qq_40197828/article/details/78302124VSCode插件安装:Vetur和ESlint 二、更换淘宝镜像源 更换镜像源命令:npm install -g c…...

Android开发 Dialog对话框 DatePickerDialog
1. AlertDialog AlertDialog是弹出的提醒对话框,有提示,确认,选择等功能。 没有公开的构造方法,一般用AlertDialog.Builder来完成参数设置,最后调用create方法创建。 参数设置常用的方法: 代码ÿ…...
开心档开发入门网之C++ Web 编程
C Web 编程什么是 CGI?公共网关接口(CGI),是一套标准,定义了信息是如何在 Web 服务器和客户端脚本之间进行交换的。CGI 规范目前是由 NCSA 维护的,NCSA 定义 CGI 如下:公共网关接口(…...

C# 和 VB .NET 的纯 FFmpeg 包装器:CSFFmpeg Crack
用于 C# 和 VB .NET 的纯 FFmpeg 包装器buildbuildpassingpassing releasereleasev1.0.3.0v1.0.3.0用于 C# 和 VB .NET Framework(WinForm 和 WPF)和 .NET Core 的纯 FFmpeg 包装器。 截图 主要 Winform 示例有据可查的例子目录: 关于截图好处…...
python外篇(序列化和非序列化)
目录 概念阐述 pickle json msgpack 概念阐述 序列化是指将对象转化为可存储或可传输的数据格式,例如将 Python 对象转化为二进制、JSON 或 XML 等格式,以便于将其存储到文件中或在网络上传输。在Python中,可以使用pickle、json、msgpac…...

Linux总结(二)
基础IO 1.什么叫文件? 我们需要在操作系统的角度理解文件。 文件 = 文件内容 + 属性(所以即使是空文件,也会占空间,因为我们是需要保存文件属性的,属性也是数据,所以占空间) C/C++程序默认会打开三个文件流,叫做标准输入(stdin),标准输出(stdout),标准错误(std…...

【4.1】Socket编程、TCP挥手
TCP连接断开 四次挥手 四次挥手过程 客户端发送FIN报文,客户端进入FIN_WAIT_1状态。 服务端接收报文,发送ACK报文,服务端进入CLOSE_WAIT状态。 客户端收到ACK报文,进入FIN_WAIT_2状态。 服务端处理完数据后,也发送…...

【竞赛经历】CSDN第41期竞赛题解
1 前言 本次的竞赛主要是最后一题,对于完全不懂珠算的人来说还是有点困难的,仅理解题目的意思就花了很多时间,最后侥幸拿了第一个前三。。。 2 题解 本次竞赛分为编程题部分和非编程题部分,其中非编程题部分比较简单。 2.1 非编…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...

《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...

如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...

ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...