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 非编…...
JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...
《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...
Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...
