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 非编…...
如何让扫描PDF变得可搜索:PDFOCR-Desktop的智能文字识别方案
如何让扫描PDF变得可搜索:PDFOCR-Desktop的智能文字识别方案 【免费下载链接】pdfocr-desktop PDF OCR Application, adds an OCR text layer to scanned PDF files, allowing them to be copied and searched. 项目地址: https://gitcode.com/gh_mirrors/oc/pdfo…...
5分钟搞定Meson交叉编译:手把手教你配置ARM64目标平台(附DPDK实例)
Meson交叉编译实战指南:从零构建ARM64平台的DPDK应用 第一次接触交叉编译时,我盯着满屏的工具链路径和架构参数发愣——这简直像在解译外星密码。直到发现Meson的交叉编译配置文件,才发现原来构建跨平台应用可以如此优雅。本文将带你用Meson这…...
nomic-embed-text-v2-moe保姆级教程:Gradio自定义CSS主题与响应式布局
nomic-embed-text-v2-moe保姆级教程:Gradio自定义CSS主题与响应式布局 1. 从零开始:认识nomic-embed-text-v2-moe 如果你正在寻找一个既强大又好用的文本嵌入模型,特别是需要处理多语言内容,那么nomic-embed-text-v2-moe绝对值得…...
把 SAP Fiori 后端授权模型讲透:从 PFCG、Catalog 到 SU24 的一条完整链路
很多团队在上线 SAP Fiori 应用时,会把注意力集中在前端目录、磁贴和页面配置上,结果到了联调或上线阶段才发现:用户明明能看到应用入口,点击之后却报错;或者应用能打开,但列表为空;再或者少数用户能看到不该看的业务数据。问题往往不在 UI 本身,而在后端授权模型没有真…...
Windows 11安卓子系统实战:无需商店直装APK的终极指南
1. Windows 11安卓子系统核心概念解析 Windows 11安卓子系统(Windows Subsystem for Android,简称WSA)是微软推出的重磅功能,它让Windows系统首次实现了原生运行安卓应用的能力。这个功能本质上是在Windows内核层构建了一个轻量化…...
深度学习中的优化器:原理与实践
深度学习中的优化器:原理与实践 一、背景与动机 在深度学习中,优化器是模型训练的核心组件,它决定了模型参数如何根据损失函数的梯度进行更新。选择合适的优化器对于模型的训练速度和最终性能至关重要。本文将深入探讨各种优化器的核心原理、…...
WWW-万维网
万维网的概念与组成结构万维网(World Wide Web,WWW)是一个分布式的信息存储空间,在这个空间中:一个事物被称为一样 “资源”,并由一个全域 “统一资源定位符”(URL)标识。这些资源通…...
MCP项目笔记六(PluginsLoader)
C 插件加载器:从目录扫描、动态库加载、实例创建,到安全卸载的设计思路与实现细节。一、整体架构概览 这段代码实现了一个完整的运行时插件系统(Runtime Plugin System)。所谓插件系统,就是让主程序在编译完成后&#…...
从IMU初始化到点云去畸变:深入Fast-LIO2的传感器融合核心流程
从IMU初始化到点云去畸变:Fast-LIO2传感器融合全流程解析 在自动驾驶和机器人定位领域,激光雷达与IMU的紧耦合系统正成为高精度状态估计的主流方案。Fast-LIO2作为这一技术路线的代表,其核心创新在于将IMU的动力学特性与激光点云几何特征深度…...
Mac 版 SSH 登录脚本
Mac 版 SSH 登录脚本 整合原有编码机器人 + 新增飞书运营机器人,分区域展示、带完整名称/备注/专线IP,一键登录,Mac 专属、直接可用! 前置准备(仅执行1次) brew install sshpass完整脚本(复制保存为 robot_ssh.sh) #!/bin/bash # Mac 专用 - 编码机器人 + 飞书机器…...
