gpt4 book ai didi

python - 更改 urlparse.path 的 url

转载 作者:行者123 更新时间:2023-11-28 16:23:20 25 4
gpt4 key购买 nike

这是python代码:

url = http://www.phonebook.com.pk/dynamic/search.aspx
path = urlparse(url)
print (path)

>>>ParseResult(scheme='http', netloc='www.phonebook.com.pk', path='/dynamic/search.aspx', params='', query='searchtype=cat&class_id=4520&page=1', fragment='')

print (path.path)
>>>/dynamic/search.aspx

现在我需要将 path.path 更改为我的要求。就像“/dynamic/search.aspx”是路径那么我只需要第一个斜杠和最后一个斜杠之间的部分,包括斜杠“/dynamic/”。

我已经尝试过这两行,但最终结果不是我所期望的,这就是我问这个问题的原因,因为我对“urllib.parse”的了解不足。

path = path.path[:path.path.index("/")]
print (path)
>>>Returns nothing.
path = path.path[path.path.index("/"):]
>>>/dynamic/search.aspx (as it was before, no change.)

简而言之,无论 path.path 结果是什么,我只需要目录名。例如:“dynamic/search/search.aspx”。现在我需要“动态/搜索/”

最佳答案

首先,path 的所需部分可以使用 rfind 获得,它返回最后一次出现的索引。 + 1 用于保留尾部斜杠。

desired_path = path.path[:path.path.rfind("/") + 1]

其次,使用_replace方法替换urlparse对象的path属性如下:

desired_url = urlunparse(path._replace(path=desired_path))

完整的工作示例:

from urllib.parse import urlparse, urlunparse

url = "http://www.phonebook.com.pk/dynamic/search/search.aspx"
path = urlparse(url)

desired_path = path.path[:path.path.rfind("/") + 1]
desired_url = urlunparse(path._replace(path=desired_path))

关于python - 更改 urlparse.path 的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38552253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com