我正在使用BeautifulSoup提取所有标签为= mailto的标签。我正在自己的网站上运行。我唯一的问题是说我已经提到了两次电子邮件。我只希望它将其存储到数组中。使用商店,我还在存储URL的路径。现在保持简单,然后将其简化为"/".
我需要一种方法来浏览每个元素,找到" URL"并检查值。如果不存在,请将其添加到数组中。
这是我得到的,但这不是正确的。
def remove_duplicates(arr):
final_list = []
for page, data in enumerate(arr):
if not final_list:
final_list.append({'page': '/', 'url': data["url"]})
print(final_list)
pageData = urllib.request.urlopen('<anysite>').read()
soup = BeautifulSoup(pageData, 'html.parser')
initialData = []
data = []
for i in soup.find_all("a", href=lambda href: href and "mailto" in href):
initialData.append({'page': '/', 'url': i.text})
remove_duplicates(initialData)
如果我遇到的问题是我两次提到了我的电子邮件。我只希望它将其存储到数组中。然后,我建议您列出列表,然后返回列表。通过这样做,您可以消除重复的数据。
k = ['hello','world','hello']
set(k)
{'hello', 'world'}
list(set(k))
['hello', 'world']
并检查列表中是否存在一个值,您可以使用not in
关键字。
样本:
ls = [{'google': 'www.google.com'},{'facebuk': 'www.facebuk.com'},{ 'sample': 'www.sample.com'}, { 'sample': 'www.sample.com'}]
现在您可以执行此删除重复项。
>>> [dict(t) for t in {tuple(d.items()) for d in ls}]
[{'google': 'www.google.com'}, {'sample': 'www.sample.com'}, {'facebuk': 'www.facebuk.com'}]
希望它有帮助。