当前位置: 首页 > news >正文

3.url编码

一、url 是什么

URL 编码也叫百分号编码,就是把URL 里不能直接传输、有特殊含义、中文 / 空格等字符,转成%两位十六进制数的格式,让浏览器和服务器能正常识别、不报错。

二、为什么需要 URL 编码

  1. 有特殊含义的字符
    比如? = & / #
    这些在 URL 里是分隔符,如果你要把它们当作普通文字传参数,不编码服务器会解析错乱。

  2. 中文、空格、特殊符号
    URL 标准只能用英文字母、数字、少量符号中文、空格、emoji必须编码才能传输。

  3. 避免乱码、参数错位、接口报错
    爬虫、接口请求、拼接 GET 参数时,不编码极易参数失效、404、参数被截断。

三、url 编码规则

  • 空格 → 常编码为%20
  • 中文 / 符号 → 按UTF-8先转字节,再每字节加%转十六进制

四、日常用到的场景

  1. 爬虫拼接 GET 请求参数

  2. 接口传中文、特殊符号参数

  3. 浏览器地址栏自动转码

  4. 登录 Cookie、token 里的特殊字符处理

五、python编码/解码

from urllib.parse import quote, unquote # URL编码 s = "你好 测试&name=张三" encode_str = quote(s, encoding="utf-8") print(encode_str) # URL解码 decode_str = unquote(encode_str, encoding="utf-8") print(decode_str)

六、实例分析

1.搜狗搜索如下图所示,网址为https://www.sogou.com

2.在搜狗搜索中输入“爬虫”两个字进行测试,如下图所示。

3.搜索结果如下图所示,网址发生了以下变化。这时将网址内容进行解析,即可获得正确的带有“爬虫”关键字的搜狗搜索网址。(只提取关键内容即可)

4.使用原网址+搜索关键字所合成的的网址进行网页解析,使用字符串的连接方式进行连接,具体代码如下所示。

import urllib.request import urllib.parse # 这是搜狗搜索的网址 # 'https://www.sogou.com/web?query=爬虫' # 'https://www.sogou.com/web?query=%E7%88%AC%E8%99%AB' url="https://www.sogou.com/web?" param={ 'query':"爬虫" } new_param=urllib.parse.urlencode(param) #print(new_param) url=url+new_param #print(url) headers={ 'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36' } request=urllib.request.Request(url=url,headers=headers) response=urllib.request.urlopen(request) content=response.read().decode('utf-8') with open('sogou.html','w',encoding='utf-8')as fp: fp.write(content)

此时,便获得了带有特殊字符“爬虫”的搜索网址。

http://www.gsyq.cn/news/1342647.html

相关文章:

  • 关于 ops-transformer 和它背后那套系统,几个我见过最常见的误解
  • VGG16猫狗二分类数据集处理
  • ops-transformer 基础设施性能实验报告:GE 融合边界与 Runtime 调度效率实测
  • 手把手教你学Simulink——轨道车辆牵引电机直接转矩控制(DTC)及其磁链观测器仿真
  • 手把手教你学Simulink——考虑铁损的电动汽车永磁同步电机高阶矢量控制建模
  • 2026AI写作辅助软件实测排行榜!这几款才是真神器
  • Midjourney色彩一致性难题破解(CMYK→sRGB跨域校准实战手册)
  • 计算机毕业设计 | SpringBoot+vue医院药品管理系统(附源码+论文)
  • 078.半监督学习:利用少量标注数据和大量无标签数据训练YOLO
  • 彻底掌控Windows Defender:开源工具defender-control完全指南
  • STM32矩阵按键详解——4×4行列扫描与非阻塞消抖(硬件总结六)
  • 用LLM从零搭3D小世界编辑器|小白也能搞定的AI Native开发实录
  • 注释与常用快捷键
  • 【Unity】MiniGame编辑器小游戏(十六)中国象棋局域网对战【Chinese Chess】(下)
  • 把SAC model的数据导出到BW的ADSO中
  • 强制启动 Cursor IDE 主程序(不带 Agent 模式)
  • AI 的持续学习:从会话中提取可复用知识
  • [具身智能-833]:Ollama部署大模型后,如何与大模型进行通信?
  • SMARTFORM不同模板一起打印
  • 工程实战:基于 GPIO 物理旁路极速部署机器人电梯调度系统的设计
  • 嘉立创EDA:原理图到PCB学习总结
  • 忙碌”幻觉:你以为在推进项目,其实只是在逃避
  • 全球石墨纤维粉市场分析与行业发展趋势
  • 凡亿AD22--PCB生产Gerber文件输出
  • AI犯了错没人追责,工程师犯了错丢饭碗?
  • AI电商助手项目策划书(Demo版)
  • 探索C/C++程序从源码到可执行文件的编译之旅
  • Mamba架构原理与工业级长文本处理实战指南
  • 【限时解密】Midjourney后现代风格黄金参数矩阵(含27组实测CR值对比数据):错过本轮更新将永久失去V6.1前最后兼容窗口期
  • 软考高项案例分析1:项目整合管理