1 简介
大家好,在诸如网络爬虫、web
应用开发等场景中,我们需要利用Python
完成大量的url
解析、生成等操作。
而在Python
生态中,无论是使用诸如urllib
之类的标准库,还是各种第三方库,可以用来有效处理url
的方法都非常之丰富。而今天我要给大家介绍的url
处理库,则是我在实际使用中综合考虑简单易用性与运算速度后,最为满意的😋。
2 在Python中利用yarl高效处理url
这个可以用来高效便捷处理url
的第三方库叫做yarl
,使用pip install yarl
完成安装后,下面我们来快速学习其主要的一些功能方法:
2.1 利用yarl解析url信息
基于yarl
中的URL()
,我们可以从任意合法的url
中解析出下图所示的各个构成部分:
先来看一个简单的例子,其中对我保管每一篇博客文章附件的github
仓库路径url
进行解析:
from yarl import URL
url = URL('https://github.com/CNFeffery/DataScienceStudyNotes/tree/master/%E5%8E%86%E5%8F%B2%E6%96%87%E7%AB%A0%E9%99%84%E4%BB%B6%E5%88%97%E8%A1%A8')
原始的网址由于包含了中文等非ASCII
字符,所以粘贴到代码中后变成了url编码后的样子,直接调用human_repr()
方法即可进行解码还原:
而通过获取对应url
各部分名称的属性,即可分别提取出相应信息:
其中端口信息是基于scheme
信息按照常规情况进行推断的,http
即为80
,https
即为443
,若需要获取url
中显式出现的端口信息,可以使用explicit_port
:
针对url
中的hash
标签信息则可以通过fragment
取得:
若要解析的url
中包含query
参数信息,则可以直接调用query
得到MultiDict
类型的返回结果,这是种特殊的字典类型,它允许存在重复的键,对于不存在重复的键值对,可以像普通字典那样索引值,**「否则」**则需要通过getall()
方法来返回所传入键对应的所有值列表:
可以感受到通过yarl
解析url
非常的方便~
2.2 利用yarl构造url
当我们需要基于已有的各部分信息构造url
时,yarl
就更加方便了,基础的方式是基于URL.build()
方法,以函数传参的方式定义url
:
而如果你已经有了具体存在的yarl.URL
对象,想在此基础上进行其他部分内容的设置,则可以使用一系列名称格式为with_xxx()
的方法,其中xxx
就对应着各个部分的名称:
特别地,针对查询参数部分,还专门有update_query()
方法进行参数追加,它与with_query()
的区别可以从下面的例子中体会到:
2.3 利用/
、%
运算符快捷合成url
在yarl
中,针对/
、%
运算符进行了重写,以支持类似下面例子的快捷操作,非常的方便:
除了上面介绍的yarl
常用功能以外,还有譬如利用is_absolute()
方法判断url
是否为绝对路径等其他实用功能。
关于Python学习指南
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!
👉Python所有方向的学习路线👈
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)
👉Python学习视频600合集👈
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
温馨提示:篇幅有限,已打包文件夹,获取方式在:文末
👉Python70个实战练手案例&源码👈
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉Python大厂面试资料👈
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
👉Python副业兼职路线&方法👈
学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。
👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方CSDN官方认证二维码或者点击链接免费领取【保证100%免费
】