gpt4 book ai didi

python - 按文件路径和 GET 参数(但不是它们的值)匹配 URL

转载 作者:太空宇宙 更新时间:2023-11-04 07:34:32 25 4
gpt4 key购买 nike

如何检查我的 URL 列表是否与给定的 url 匹配?仅当所有 GET 参数名称(不是它们的值)和路径都相同时,我才需要匹配 URL。例如,我有这个列表:

links = [
"http://example.com/page.php?param1=111&param2=222",
"http://example.com/page2.php?param1=111&param2=222",
"http://example.com/page2.php?param1=111&param2=222&someParameterN=NumberN"
]

url = "http://example.com/page2.php?param1=NOT111&param2=NOT222"

这个例子是 True 因为 url 匹配 links[1]。但是如何以最有效的方式进行匹配呢?我不知道 url 会是什么样子。

最佳答案

理想情况下,您希望使用 python 的 urlparse 库。像这样解析您的网址:

import urlparse
url = "http://example.com/page2.php?param1=NOT111&param2=NOT222"
parsed_url = urlparse.urlparse(url)
urlparse.parse_qs(parsed_url.query).keys()

然后你创建一个看起来像这样的数据结构:

seen_pages = set() # Stores all pages you've already seen.

然后你的所有页面都像这样:

for page in list_of_pages:
parsed_url = urlparse.urlparse(page)
current_page = (parsed_url.path, frozenset(urlparse.parse_qs(parsed_url.query).keys())
seen_pages.add(current_page)

这会将您的所有页面以以下形式存储:tuple(link, set(param1,param2)) 在一个集合中。

要查看您是否已经使用这些确切的参数访问过该页面,只需再次创建 current_page 结构并在集合中查找它。查找和添加到一个集合是一个 O(1) 操作,也就是说,它尽可能快。

关于python - 按文件路径和 GET 参数(但不是它们的值)匹配 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39410308/

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