Python从明文中筛选URL并打印筛选结果

2024-09-21 01:19:02 发布

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

嗨,正如问题提到的,我想问一个问题,如何解决这种问题?我使用if in方法比较行和变量之间的结果,但并不是所有的结果都匹配,因为某些URL具有不同的路径。下面是我的代码示例

urls = ["https://www.facebook.com/SomeCompany", "https://example.com/news/", "https://twitter/test"]
urls = list(dict.fromkeys(urls))
listfile = open("list.txt", 'r')
filtered = []

for url in list(set(urls)):
    for line in listfile:
        if url in line :
            urls.remove(url)
        else:
            filtered.append(url)
    print(' - '.format(filtered))

在list.txt中,纯文本只包含一行要过滤的内容,即

https://www.facebook.com/

我应该用什么方法来过滤掉不需要的URL或域名


Tags: 方法inhttpstxtcomurlforfacebook
2条回答

你可以试试这个

您可以使用any()检查列表中是否有行

urls = ["https://www.facebook.com/SomeCompany", "https://example.com/news/", "https://twitter/test"]
var = "https://www.facebook.com/"
if any (var in u for u in urls):
    print(var)

要从url提取主机名,可以使用urllib执行以下操作:

from urllib.parse import urlparse
parsed_uri = urlparse('http://stackoverflow.com/questions/xy' )
result = '{uri.scheme}://{uri.netloc}/'.format(uri=parsed_uri)
print(result)

# outputs
'http://stackoverflow.com/'

相关问题 更多 >

    热门问题