Python 解析获取 URL 参数及使用步骤

下文中使用的 URL 地址是:https://www.example.com/?keyword=abc&id=12

Python 解析获取 URL 参数的步骤如下:

首先导入 Python3 自带的urllib.parse

该模块用于将 URL 解析为各部分(需要注意的是解析的是字符串,所以要加引号):

>>> from urllib import parse

或者

>>> from urllib.parse import urlparse

然后使用urlparse来将字符串解析成 URL

>>> url
ParseResult(scheme=\'https\', netloc=\'www.example.com\', path=\'/\', params=\'\', query=\'keyword=abc&id=12\', fragment=\'\')

或者直接

>>> url=urlparse(\"https://www.example.com/?keyword=abc&id=12\")

这时候url变量就包含了 URL 的各部分信息,如下:

>>> url
ParseResult(scheme=\'https\', netloc=\'www.example.com\', path=\'/\', params=\'\', query=\'keyword=abc&id=12\', fragment=\'\')

可以通过以下方式来访问其中某一部分的内容,这里以query部分为例(也就是参数部分):

>>> url.query
\'keyword=abc&id=12\'

转换成字典格式

假如需要将其以字典格式返回,那么就需要使用parse.parse_qs

>>> parad=parse.parse_qs(url.query)
>>> parad
{\'keyword\': [\'abc\'], \'id\': [\'12\']}

也可以获取其中某一个参数对应的值,如下:

>>> para.get(\'id\')
[\'12\']

或者直接使用:

>>> parse.parse_qs(url.query).get(\'id\')
[\'12\']

转换成列表格式

假如需要将其以列表格式返回,列表里的元素是元组(tuple)格式,那么就需要使用parse.parse_qsl

>>> paral=parse.parse_qsl(url.query)
>>> paral
[(\'keyword\', \'abc\'), (\'id\', \'12\')]

使用起来,没有字典那么方便直接,如下:

>>> paral[0][0]
\'keyword\'

更详细严谨的介绍和使用方法可以查看官方文档:https://docs.python.org/3/library/urllib.parse.html

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容