Check sur 3M de sites

Bonjour à tous, j’ai une BDD avec 3M de nom de domaines dedans. J’aimerai effectuer un check sur chaque URL, si le site est toujours actif et si le site dispose d’une langue française.

Savez-vous comment je pourrais faire ça rapidement ?

1 « J'aime »

Hello @Fugazi, on peut te le faire chez deux.io si tu veux, n’hésite pas !

Bonjour @Fugazi,

Pour vérifier si les sites sont encore en ligne, j’avais rédigé ça si tu veux (méthode gratuite) : Comment vérifier le statut de sites internet avec Google Sheets ?
Après je n’avais pas testé sur autant de lignes que toi :sweat_smile:

Et pour vérifier si il y a la langue FR de la même manière tu peux analyser automatiquement le code source d’une page.
Si tu trouves des éléments comme lang=« fr » ou hreflang=« fr » ou autres, tu as de grande chance que le site propose une version française.

2 « J'aime »

Un petit script que j’ai fait rapidement qui pourrait résoudre ton souci.

Après pour 3M de site, je te conseille de faire du multithreading (chatgpt peut t’aider sur ce sujet :slight_smile: )

Je t’ai fait deux exemples, avec deux façons différentes d’y arriver (je n’ai pas fait tourner le script mais normalement il devrait fonctionner)

#avec selenium
import pandas as pd
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

df = pd.read_excel(‹ ton_fichier_excel.xlsx ›)
driver = webdriver.Chrome(ChromeDriverManager().install())
column = « le_nom_de_la_colonne_des_urls »
status_code = []
language = []
for index, row in df.iterrows():
try:
driver.get(row[column])
status_code.append(driver.execute_script(« return window.performance.getEntries()[0].response.status »))
language.append(driver.execute_script(« return window.performance.getEntries()[0].responseHeaders[‹ content-language ›] »))
except:
status_code.append(« error »)
language.append(« error »)
df[« status_code »] = status_code
df[« language »] = language
df.to_excel(« ton_fichier_excel.xlsx », index=False)

#avec requests
import pandas as pd
import requests

df = pd.read_excel(‹ ton_fichier_excel.xlsx ›)
column = « le_nom_de_la_colonne_des_urls »
status_code = []
language = []
for index, row in df.iterrows():
try:
r = requests.get(row[column])
status_code.append(r.status_code)
language.append(r.headers[« content-language »])
except:
status_code.append(« error »)
language.append(« error »)

2 « J'aime »

Merci énormément pour vos réponses ! J’essaye ça et je vous tiens au courant :slight_smile:

Petit scrapebox à l’ancienne.

1 « J'aime »

Pour checker s’ils existent encore je ferais un call http sur l’url et tu récup la réponse si ça marche ou pas. Mais pour la langue je sais pas

Ahhhh ce fameux scrapebox. L’outil est tellement simple qu’on oublierai son existence et chercher un outil plus complique

En mode nocode, tu peux utiliser le software screaming frog pour tester la reponse php des url et extraire les lang/hreflang pour une version fr. Pour 3M d’url, il faut un bon ordi, soit le faire en plusieurs lots, soit l’installer sur un serveur.

En mode coding, un simple curl pour tester la reponse http + extraire le titre et/ou le contenu de la page, et utiliser des api (chatgpt ou autre) pour analyser la langue du contenu et savoir si c’est en francais.
J’imagine que chatgpt peut te creer le code, et tu l’utilises sur vercel ou cloudflare workers

En mode sans prise de tete, tu peux externaliser sur fiverr (rapide et pas cher)