urllib.parse解析获取url链接中的参数(domain、scheme、query等)

一、通过urllib.parse库解析url中需要的参数

https://www.xxx.com/api/projectid/123456/versionid/789012/components?limit=10&pageno=2

上面这个url想要解析如下数据

domain www.xxx.com

scheme https

projectid 123456

versionid 789012

limit 10

pageno 2

二、代码如下

from urllib.parse import urlparse, parse_qs

if __name__ == '__main__':

    test_url = "https://www.xxx.com/api/projectid/123456/versionid/789012/components?limit=10&pageno=2"

    parsed_url = urlparse(test_url)  # 解析url 结果如下
    # ParseResult(scheme='https', netloc='www.xxx.com', path='/api/projectid/123456/versionid/789012/components', params='', query='limit=10&pageno=2', fragment='')
    domain = parsed_url.netloc  # 提取域名 'www.xxx.com'
    scheme = parsed_url.scheme  # 提取scheme 'https'
    full_domain = f"{scheme}://{domain}"  # 全的域名 'https://www.xxx.com'
    query_params = parse_qs(parsed_url.query)  # 提取url?后面的参数 {'limit': ['10'], 'pageno': ['2']}
    limit = query_params["limit"][0]  # 提取limit的值 10
    page_no = query_params["pageno"][0]  # 提取pageno的值 2

    url_path = parsed_url.path  # 提取url路径 '/api/projectid/123456/versionid/789012/components'
    url_path_parts = url_path.split("/")  # 斜杠分隔url路径 ['', 'api', 'projectid', '123456', 'versionid', '789012', 'components']

    projectid_index = url_path_parts.index("projectid")  # projectid 的下标 2
    projectid_value = url_path_parts[projectid_index + 1]  # projectid 下标+1就是其对应的值 123456

    versionid_index = url_path_parts.index("versionid")  # versionid 的下标 4
    version_value = url_path_parts[versionid_index + 1]  # versionid 下标+1就是其对应的值 789012

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值