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



嗨,正如问题所提到的,我想问一个问题,如何解决这类问题?我使用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或其域名是合乎逻辑的?

你可以试试这个,

您可以使用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/'

最新更新