Je souhaite, à partir d’URLs de différents sites et d’une liste de mots savoir si les mots sont présents ou pas dans les urls pour en faire un dataset (savoir si une entreprise est ISO14001 ou autre info par exemple)
J’ai trouvé un morceau de script mais je peux passer qu’un seul mot et non une liste
Merci pour votre aide
import requests
from bs4 import BeautifulSoup
import pandas as pd
url_list = ['http://www.egis-acoustb.fr/',
'https://www.wurth-industrie.fr/']
#the_word = input()
the_word = 'ISO14001'
total_words = []
for url in url_list:
r = requests.get(url, allow_redirects=False)
soup = BeautifulSoup(r.content.lower(), 'html')
words = soup.find_all(text=lambda text: text and the_word.lower() in text)
count = len(words)
words_list = [ ele.strip() for ele in words ]
for word in words:
total_words.append(word.strip())
print('\nUrl: {}\ncontains {} of word: {}'.format(url, count, the_word))
print(words_list)
Hello, pour info tu utilises beautifulsoup, pas scrapy
Le mieux est sûrement d’apprendre un petit peu à utiliser python pour pouvoir comprendre ce qu’il se passe et l’éditer toi-même, notamment pour pouvoir automatiser l’entrée et la sortie (via fichiers texte/csv par exemple)
Tu veux dire est-ce que les mots sont présents sur la landing et non dans l’url ? Il est possible de lire le contenu de la landing en html avec une requête POST et de bricoler un code du genre
while word_list.length > i {
if (word_list[i] is in html {
keep_site = true
} else {
keep_site = false
}
i++;
}