- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
【技术分享】Python中URL处理的常见问题及解决方案,值得收藏!
URL处理在Python编程中经常遇到,可惜很多人都会踩坑。今天咱们就来聊聊这个话题,
看看有哪些常见问题,怎么解决。别担心,我会用简单的例子帮你理解,保证你看完就能用!
URL解析
URL解析是个基本功,得先掌握。
Python标准库里的urllib.parse模块就是专门干这个的。
???
1fromurllib.parseimporturlparse
2
3url=“https:///path/to/page?
name=value#section”4parsed_url=urlparse(url)56print(parsed_url.scheme)#https7print(parsed_loc)#8print(parsed_url.path)#/path/to/page9print(parsed_url.query)#name=value10print(parsed_url.fragment)#section
urlparse函数把URL拆成几个部分,方便你单独处理每个部分。这在提取特定信息时特别有用。
温馨提示:别把urlparse和parse_url搞混了,这两个可不一样!
URL编码解码
URL中有些字符是不允许直接使用的,比如空格、中文等。
这时候就需要URL编码了。
???
1fromurllib.parseimportquote,unquote
2
3#URL编码
4original=“Hello世界”
5encoded=quote(original)
6print(encoded)#Hello%20%E4%B8%96%E7%95%8C
7
8#URL解码
9decoded=unquote(encoded)
10print(decoded)#Hello世界
quote函数把不安全的字符转换成百分号编码,unquote则是反过来。这两个函数用好了,
中文URL的问题就迎刃而解了。
拼接URL
有时候你可能需要把几个URL片段拼起来,别以为直接用加号就行了,那样容易出错。
用urljoin函数才是正确姿势:
???
1fromurllib.parseimporturljoin
2
3base=“https:///foo/”
4relative=“bar”
5
6full_url=urljoin(base,relative)
7print(full_url)#https:///foo/bar
urljoin会自动处理斜杠问题,让你不用操心URL是否格式正确。
处理查询参数
URL中的查询参数常常需要单独处理。
parse_qs和urlencode函数就是干这个的:
???
1fromurllib.parseimportparse_qs,urlencode
2
3#解析查询字符串
4query=“name=Johnage=30”
5params=parse_qs(query)
6print(params)#{name:[John],age:[30]}
7
8#构造查询字符串
9new_params={city:NewYork,country:USA}
10new_query=urlencode(new_params)
11print(new_query)#city=New+Yorkcountry=USA
这两个函数一个把查询字符串变成字典,一个把字典变成查询字符串,配合起来用简直不要太方便。
实际应用场景
说了这么多,来点实际的吧。
假设你在做一个网络爬虫,需要处理各种URL:
???
1fromurllib.parseimporturlparse,urljoin,quote
2
3defclean_url(url):
4parsed=urlparse(url)
5base=f“{parsed.scheme}://{loc}”
6path=quote(parsed.path)
7returnurljoin(base,path)
8
9urls=[
10“https:///搜索结果”,
11“http:///page?
q=Python编程”,12“https:///posts/url处理”13]1415forurlinurls:16print(clean_url(url))
您可能关注的文档
- 【技术分享】快速上手TkinterGUI编程,打造自己的计算器!.docx
- 【开发利器】vulture模块:发现Python代码中的“死”代码,让项目更清爽!.docx
- 【时间处理利器】PythonArrow模块,让你告别繁琐的datetime!.docx
- 【提升效率】学会使用aiofiles模块,让Python文件操作更高效!.docx
- 30个Python爬虫的实战项目(附源码).docx
- 124个Python案例,完整源代码!.docx
- Aardio,一个牛逼的python库!.docx
- acos,一个经典的python库!.docx
- akshare,一个超强的Python库!.docx
- Alembic,一个数据库迁移工具!.docx
- 考点汇总2021年六年级语文小升初专项训练十文学知识及写作部编版-含答案.doc
- 2025年大学《网络与新媒体》专业题库—— 网络传媒在文化传承中的应用.docx
- 2025年大学《数学与应用数学》专业题库—— 实变函数论的理论与实际意义.docx
- 2025年大学《天文学》专业题库—— 恒星的演化及生命周期.docx
- 2025年大学《僧伽罗语》专业题库—— 僧伽罗语翻译理论与实践探析.docx
- 2025年大学《天文学》专业题库—— 暗星云中的恒星形成机制.docx
- 2025年大学《物理学》专业题库—— 无线电波传播与电磁辐射研究.docx
- 2025年大学《生物统计学》专业题库—— 生物统计学对遗传变异研究的意义.docx
- 2025年大学《网络与新媒体》专业题库—— 数字传播技术在新媒体中的应用.docx
- 2025年大学《生物统计学》专业题库—— 生物统计学在疾病诊断中的应用.docx
最近下载
- Unit 7 What’s the highest mountain in the world教学设计-教案.docx VIP
- 《高中思想政治》(必修1)课程纲要.doc VIP
- 基于国家智慧教育云平台的移动学习环境下的学生自主学习习惯养成研究教学研究课题报告.docx
- 高中思想政治新旧课程比较研究.pdf VIP
- 高一的语文专题训练—辨析并修改病句练习题.docx VIP
- QC成果-浙江中烟技术中心:ZJ112卷烟机VE循环风冷却系统的研制.pdf VIP
- YYT 0472.2-2004 医用非织造敷布试验方法 第2部分 成品敷布.docx VIP
- 猪促黄体生成素的重组表达载体、重组细胞株、制备方法.pdf VIP
- 智慧社区规划设计方案.ppt VIP
- 中压岸电AMP系统的安全操作及管理.pptx
原创力文档


文档评论(0)