J'ai besoin d'aide pour supprimer les URL en double dans ma sortie. J'essaierais de le représenter de telle sorte que je n'ai pas à tout mettre dans une liste, si possible. J'ai l'impression que cela peut être réalisé avec un énoncé logique, mais je ne sais pas trop comment le faire. Utiliser Python 3.6.Suppression des URL en double dans Python (non liste)
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup
from urllib.parse import urljoin as join
my_url = 'https://www.census.gov/programs-surveys/popest.html'
uClient = uReq(my_url)
page_html = uClient.read()
uClient.close()
page_soup = soup(page_html, "html.parser")
filename = "LinkScraping.csv"
f = open(filename, "w")
headers = "Web_Links\n"
f.write(headers)
links = page_soup.findAll('a')
for link in links:
web_links = link.get("href")
ab_url = join(my_url, web_links)
print(ab_url)
if ab_url:
f.write(str(ab_url) + "\n")
f.close()
Avec la même idée, une compréhension semble plus propre à mon humble avis: 'urls_set = set (join (my_url, link.get ("href") pour le lien dans les liens)' puis La commande est perdue, cependant – MariusSiuram
@MariusSiuram Vrai, mais vous perdez la commande en écrivant le contenu de l'ensemble dans le fichier – DeepSpace
@DeepSpace Solution parfaite Je ne sais pas pourquoi je ne voulais pas utiliser une liste/ensemble, mais c'est exactement ce qu'il fallait faire, merci! –