当前位置: 首页 > 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.cnnetsun.cn/news/2503062.html

相关文章:

  • 18.Linux进程退出和进程等待机制详解
  • 前端状态管理方案:从简单到复杂的演进
  • 13. 模块系统
  • 太突然!IPO紧要关头,Karpathy加入Anthropic
  • 探索C/C++程序从源码到可执行文件的编译之旅
  • 嘉立创EDA:原理图到PCB学习总结
  • 用Claude Code做了一件事,现在AI比我还了解我?
  • CVPR 2026 预讲会54位讲者云集| 6大方向+5个专场
  • 留学生遭遇大厂 PIP 晴天霹雳?2026 北美科技圈绩效提升计划深度解码与生存闭环
  • 多代理RTL漏洞检测系统:原理、实践与优化
  • 离子原生QAOA算法:量子优化新突破
  • AI Agent Runtime 正在成为新基础设施层
  • Multi-Head Latent Attention(MLA)原理与工程实践全解析
  • 机器学习评估指标实战指南:业务、数据与工程的决策逻辑
  • Neural Code Search:代码语义搜索原理与工程落地
  • 激活函数为什么是神经网络的非线性开关?
  • Determined AI分布式训练实战:突破算法与编码偏差治理
  • MoE混合专家架构原理与工程实践:解密大模型稀疏计算真相
  • 2026年5月降AI率保姆级避坑指南:知网维普AI率5%上岸
  • GPT-4参数真相:1.8万亿与2%稀疏激活的技术本质
  • TensorFlow 2迁移学习实战:图像分类快速上手指南
  • VMPDump:突破性动态脱壳与智能导入表修复技术方案
  • 【从零到一】一篇文章让你彻底玩转Spearman相关性矩阵
  • Cloud-Device Collaborative Learning for Multimodal Large Language Models
  • Sa-Token客户端ID校验失败的原理与修复指南
  • OpenSSH 9.6p1紧急升级全解析:CVE-2023-51385漏洞修复实战指南
  • Unity对象池架构设计:从状态管理到Reset三级清洗
  • Unity多分辨率UI适配原理与Resize Pro动态缩放实战
  • OpenAI投2.34亿美元、谷歌携多项计划,新加坡AI战略引科技巨头入局
  • UE5 Windows到Linux交叉编译避坑指南:ABI兼容与构建链路实战