在python中解析url,并在i中更改部分

2024-10-03 11:13:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Python解析一个url,下面你可以找到一个示例url和代码,我要做的是将(74743)从url中分离出来,并生成一个for循环,它将从部件列表中获取它。 尝试使用urlparse,但由于url中的部分发生了变化,最终无法完成。我只想用最简单最快的方法来做这件事。在

示例url:

http://example.com/wps/portal/lYuxDoIwGAYf6f9aqKSjMNQ/?PartNo=74743&IntNumberOf=&is=

http://example.com/wps/portal)始终固定

(lYuxDoIwGAYf6f9aqKSjMNQ)总是在变化

(74743)将从零件列表中提取名称

(IntNumberOf=&;is=)也会根据 网站

代码如下:

^{pr2}$

Tags: 代码comhttpurl示例列表foris
1条回答
网友
1楼 · 发布于 2024-10-03 11:13:07
>>> import urlparse

>>> url = 'http://example.com/wps/portal/lYuxDoIwGAYf6f9aqKSjMNQ/?PartNo=74743&IntNumberOf=&is='

>>> split_url = urlparse.urlsplit(url)
>>> split_url.path
'/wps/portal/lYuxDoIwGAYf6f9aqKSjMNQ/'

可以使用“/”将路径拆分为字符串列表,切片列表,然后重新连接:

^{pr2}$

切掉最后两个:

^{pr3}$

并重新加入:

^{pr4}$

要分析查询,请使用parse\qs:

>>> parsed_query = urlparse.parse_qs(split_url.query)
{'PartNo': ['74743']}

要保持空参数,请使用^{{cd1>}:

>>> query = urlparse.parse_qs(split_url.query, keep_blank_values=True)
>>> query
{'PartNo': ['74743'], 'is': [''], 'IntNumberOf': ['']}

然后可以修改查询字典:

^{pr7}$

并更新原始拆分url:

>>> updated = split_url._replace(path='/'.join(base_path.split('/')[:-2] +
                                              ['ASDFZXCVQWER', '']),
                                query=urllib.urlencode(query, doseq=True))

>>> urlparse.urlunsplit(updated)
'http://example.com/wps/portal/ASDFZXCVQWER/?PartNo=85731&IntNumberOf=&is='

相关问题 更多 >