Python3 URL格式化url解析url提取参数

我们一般见到的url地址都是字符串形式,例如:
http://api.bilibili.com/x/web-interface/view?aid=44699780

请求协议: http
请求域名:api.bilibili.com
请求相对路径:/x/web-interface/view
请求参数:aid=44699780

我们在开发当中,如何快速的取到上面这些参数呢?
用正则?------->NO

在python3当中有自带的库urllib.parse,python2当中是w3lib.url,使用方法跟urllib.parse类似,这里不做演示

import urllib.parse
url = 'http://api.bilibili.com/x/web-interface/view?aid=44699780'
urllib.parse.urlparse(url)  # 查看ParseResult对象

Out[56]: ParseResult(scheme='http', netloc='api.bilibili.com', path='/x/web-interface/view', params='', query='aid=44699780', fragment='')

上面运行结果可以看到ParseResult对象对应的参数,接下来我们取

import urllib.parse
url = 'http://API.bilibili.com/x/web-interface/view?aid=44699780'
_ = urllib.parse.urlparse(url)

_  # 查看ParseResult对象
Out[68]: ParseResult(scheme='http', netloc='API.bilibili.com', path='/x/web-interface/view', params='', query='aid=44699780', fragment='')

_.scheme  # 请求协议
Out[69]: 'http'

_.netloc   # 请求域名
Out[70]: 'API.bilibili.com'

_.path  # 请求相对路径
Out[71]: '/x/web-interface/view'

_.query   # 请求参数
Out[72]: 'aid=44699780'

_.hostname    # 获取小写域名
Out[73]: 'api.bilibili.com'

urllib.parse.parse_qsl(_.query)  # 使用urllib.parse.parse_qsl提取请求参数,返回列表
Out[74]: [('aid', '44699780')]

urllib.parse.parse_qs(_.query)   # 使用urllib.parse.parse_qs提取请求参数,返回字典
Out[75]: {'aid': ['44699780']}

注意获取小写域名的.hostname方法,域名是不区分大小写,但是有时候我们获取的数据有大写有小写,可以用这个方法转换。想提取参数可以用urllib.parse.parse_qsl(返回列表), urllib.parse.parse_qs方法(返回字典)

python练习题合集
Python3 lambda表达式(匿名函数)使用详解
Scrapy-Redis手动添加添加去重url(指纹)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值