当前位置: 首页 > 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.jsqmd.com/news/862025/

相关文章:

  • Spec-Kit + Superpowers 实战:Go语言博客论坛系统的规范驱动开发
  • VisionPro 中 验证工具 ID Verfiction
  • 性价比高的国产PLM软件公司
  • 关于 ops-transformer 和它背后那套系统,几个我见过最常见的误解
  • 数采网关的应用与特点
  • 2025-2026年国内跨境电商TRO解冻机构:五大机构产品好的产品下架风险应对注意事项
  • 本科论文不用熬大夜?paperxie 智能写作,把万字初稿的时间从 30 天压到 3 小时
  • LeetCode 27 · 移除元素——双指针一次遍历搞定,O(n²) 暴力解瞬间不香了
  • 11.三层网络VXLAN
  • 【SSD】闪存1
  • VGG16猫狗二分类数据集处理
  • ops-transformer 基础设施性能实验报告:GE 融合边界与 Runtime 调度效率实测
  • 机器学习之逻辑回归算法
  • 远程技术面试的潜规则:摄像头角度可能影响你的录用
  • RUST编程学习.2语法
  • N-Tron交换机的网络可用性到底有多强?
  • 终极指南:5分钟掌握iFakeLocation实现iOS虚拟定位的完整方法
  • 鸿蒙中的自由流转
  • Midjourney色彩一致性难题破解(CMYK→sRGB跨域校准实战手册)
  • 英伟达的“围城”:云厂商自研芯片,攻到了哪一步?
  • 2026 年 5 月云手机横评:傲晨云领跑,红手指 / 川川云对比实测
  • SMARTFORM不同模板一起打印
  • 计算机毕业设计 | SpringBoot+vue医院药品管理系统(附源码+论文)
  • 彻底掌控Windows Defender:开源工具defender-control完全指南
  • 中画幅风格仅限Pro订阅者可用?不!3个未公开API参数+本地化--seed锁定技巧,让免费账户稳定输出中画幅质感
  • 在家办公效率低?试试这个“空间切换”技巧
  • Word文档保护技巧:防止内容被轻易复制
  • 2026年4月钢边止水带企业推荐分析,聚乙烯闭孔泡沫板/聚乙烯泡沫棒/钢边止水带/橡胶止水带,钢边止水带生产厂家找哪家 - 品牌推荐师
  • STM32矩阵按键详解——4×4行列扫描与非阻塞消抖(硬件总结六)
  • 把SAC model的数据导出到BW的ADSO中