• Accueil
  • Solution professionnelle pour la collecte d'informations

Solution professionnelle pour la collecte d'informations

Scripts mailing

0 ventes

Extraire les coordonnées : téléphone, email et url des entreprises depuis un moteur de recherche

 

Etape 1 : préparer les fichiers de recherches

Créer des fichiers csv au format UTF-8 avec pour séparateur de colonne le caractère ";"

Sur chaque ligne en première colonne disposer les numéros de SIREN, en seconde colonne les requêtes url telles que :

883 484 255;La Petite Cabane de Lège 5 Av. du Médoc, 33950 Lège-Cap-Ferret

Nommer les fichiers sous la forme disk1.csv disk2.csv etc. et les disposer dans le dossier "lots" un utilitaire gratuit et pratique pour nommer en masse les fichiers : Ant renamer

 

Etape 2 : encoder les recherches de la deuxième colonne

Placer les fichiers de recherches dans le dossier "toencode"

Executer le script urlencodecsv.py il va reporter les fichiers de recherche présents dans "toencode" dans le dossier "encodés". La première colonne garde les valeurs intacte, la seconde comportera les recherches sous forme encodées par exemple :

883 484 255;La Petite Cabane de Lège 5 Av. du Médoc, 33950 Lège-Cap-Ferret

deviendra :

883 484 255;https://www.google.com/search?q=La+Petite+Cabane+de+L%C3%A8ge+5+Av.+du+M%C3%A9doc%2C+33950+L%C3%A8ge-Cap-Ferret

 

Etape 3 (facultative) : faire usage de proxys pour démultiplier les connexions disponibles

Pour un moteur de recherche tel que DuckDuckGo ne limitant les recherches par des challenges à résoudre (captcha par exemple) l'utilisation de proxys via le navigateur TOR peut s'avérer suffisante pour éviter le blocage d'une IP suite à de trop nombreuses requêtes reçues.

Repérer le fichier "torrc" qui est le fichier de paramétrage de TOR remplacez son contenu par :

MaxCircuitDirtiness 1200 (change d'ip toute les 20 minutes)
SocksPort 9050 (passerelle de connexion proxy de type socks V5)

Pour un moteur de recherche tel que Google limitant fortement le trafic, il est nécessaire de souscrire à un service de proxys socks V5 type proxyscrape (IP dédiées) ainsi qu'à un logiciel de gestion rotative des connexions tel que proxifier (payant)

Pour certains moteurs de recherche, en l'absence de l'utilisation de proxys ou en cas d'utilisation particulières il est possible d'utiliser un script alternatif résolvant les captchas. Ce script fait appel au service tiers "CapMonster" payant et spécialisé dans la résolution de captchas. Ce script est disponible mais non inclus dans ce produit, me contacter séparément pour l'obtenir, ce dernier n'est pas un script python mais JavaScript, il utilise chrome et nécessite l'add-on Cap Monster Cloud pour Chrome browser.

 

Etape 4 (facultative) : démultiplier le nombre de script en fonction du nombre de fichiers de recherches

Si vous envisagez plusieurs instances de scraping simultanées, vous devrez lancer plusieurs scripts, pour générer plusieurs scripts, placez evo2.py à coté de genere.py, executez genere.py, il créera 140 versions de evo2.py dans le dossier "versions" les fichiers porteront des noms incrémentés sous la forme evo2_v1, evo2_v2 etc. jusqu'à 140 (réglable dans le script).

 

Etape 5 : Lancer le ou les scripts pour démarrer les captures

Renommez le dossier précédent "encodés" en "lots" et exécutez le ou les scripts pour démarrer les captures, chaque instance lancera une fenêtre dos ainsi qu'une instance du navitateur : chromium dans le cas d'un scraping sans résolution de captcha avec ou sans appel à des connexions proxys.

Les résultats bruts seront enregistrés sous forme de fichiers texte au format UTF-8 dans le dossier "captures".

 

Etape 6 : Traiter les données, les filtrer en vue d'obtenir deux bases de données propres

00 total batch.py ce script exécute dans l'ordre l'ensemble des script sous jacents.

0inverse.py ce script inverse tout les contenus de tout les fichiers obtenus présents dans le dossier "captures" et les reporte dans le dossier "0inverses"

1extraitencaresetsansencareseparemieux.py ce script lit les fichiers présents dans "0inverses" et sépare chaque fichier en 2 : les premiers comportent les informations que présentent les fiches Google Entreprise (photo, nom de l'entreprise, horaires, numéro de téléphone, site web etc.) Les seconds le reste comportent tout le reste ainsi que les fichiers ne comportant pas de fiche google entreprise.

ces fichiers sont classés dans deux dossiers séparés, le premier : "1extraitencaresseuls", le second : "1extraitSANSencares"

"2 A extraitnomsitetelmaildencareseul.py" ce script extrait les informations pertinentes : Siren, numéro de téléphone, email, url, note des utilisateurs /5 et nombre d'avis des fichiers bruts contenus dans le dossier "1extraitencaresseuls" et constitue une base de donnée propre ne comportant que ces informations dans un fichier unique CSV UTF-8 avec caractère de séparation ";". La base de donnée obtenue est enregistrée dans "2 A extraitnomsitetelmaildencareseul/resultats.csv"

"2 B dedoublelignesde1extraitSANSEncares.py" supprime toute les lignes en double qui pourraient être présentes dans l'ensemble des fichiers présents dans le dossier "1extraitSANSencares" et replace les fichiers ainsi nettoyés dans le dossier "2 B dedoublelignesde1extraitSANSEncares" ceci garanti de ne retrouver que des occurrences uniques d'informations dans l'ensemble. 

"2 C extraitnomsitetelmailSANSencare.py" ce script extrait les informations pertinentes : Siren, numéro de téléphone, email et url des fichiers bruts contenus dans le dossier "2 B dedoublelignesde1extraitSANSEncares" et constitue une base de donnée propre ne comportant que ces informations dans un fichier unique CSV UTF-8 avec caractère de séparation ";". La base de donnée obtenur est enregistrée dans "2 C extraitnomsitetelmailSANSencare/resultats.csv"

 

Etape 7 : Enrichir sa base de donnée originale

Les bases de données précédemment obtenues resultats.csv sont réintégrable par exemple sur Excel à l'aide de la fonction recherche en X.

Voici une requête type :

=RECHERCHEX(B2; [Classeur1.xlsx]disk1!$A$2:$A$1000001;[Classeur1.xlsx]disk1!$B$2:$B$1000001)

Par exemple cette requête va chercher le critère de point commun (SIREN) placé en B2, dans le fichier ouvert Classeur1.xlsx entre A2 et A1000001 puis, lorsque les correspondances sont trouvées, renvoyer les valeurs présentes entre B2 et B1000001. Bien sûr il faut "tirer" la fonction sur l'ensemble des données à compléter et adapter la requête en fonction.

Il est possible d'effectuer des requêtes sur plusieurs fichiers, sur plusieurs feuilles d'un même document etc.

Dans cet exemple si j'exécute cette fonction sur mon fichier à enrichir, les SIREN correspondants dans mon fichier disk1.xlsx comportant SIREN, Tél, email et url ira chercher entre A2 et A1000001 s'il existe un SIREN identique à A2, si une correspondance existe, reportera ce qui se trouve en B donc la correspondance. Cette opération sera à répéter pour l'email et l'url en ayant soin d'adapter la fonction.

 

Résultats : environ 220 000 résultats par jour et par unité à raison de 18 connexions simultanées (cas d'utilisation de proxys)

Attention, le scraping est réglementé, limité voir interdit sur certains sites, informez-vous sur les réglementations locales de votre pays pour connaître les limites à ne pas franchir.

Par exemple il est évident que les moteurs de recherches ont pour principale activité le parcours, la synthétisation et là mise à disposition de données publiques ce que vous cherchez peut-être aussi à faire, seulement ces derniers monnayent les recherches effectuées par leurs utilisateurs via le placement d'annonces payantes, aussi, ils sont rarement favorables à ce que des robots captent automatiquement les résultats des recherches (notamment parce qu'ils ne tirent aucun bénéfice de l'activité automatisée qui de surcroît coûte potentiellement à leurs propre clients).

 

Données environnementales :

L'empreinte carbone d'une recherche sur Google est estimée à environ 0,2 à 7 grammes de CO₂, en fonction de plusieurs facteurs tels que la complexité de la requête et l’infrastructure utilisée. Voici quelques estimations courantes :

 

🌍 Estimation de l'empreinte carbone d'une recherche Google

  • 0,2 g de CO₂ : Estimation officielle fournie par Google en 2009 pour une recherche simple.
  • 0,7 g de CO₂ : Valeur généralement retenue dans des études indépendantes.
  • 4 à 7 g de CO₂ : Pour une recherche plus complexe nécessitant davantage de ressources serveurs.

🔥 Comparaison avec d'autres activités numériques

  • 1 e-mail avec pièce jointe ~ 50 g de CO₂
  • 1 heure de streaming vidéo en HD ~ 100 à 200 g de CO₂
  • 1 km parcouru en voiture thermique ~ 200 g de CO₂
  • 1 requête effectuée via ChatGPT ~ 2 à 4 fois l'empreinte carbone d'une recherche Google, selon la complexité.

Google affirme compenser ses émissions en investissant dans des énergies renouvelables, ce qui limite son impact net. Toutefois, l'empreinte réelle varie en fonction du centre de données utilisé et du mix énergétique local.

Si vous souhaitez réduire votre empreinte carbone numérique, vous pouvez opter pour des moteurs de recherche plus écologiques tels que Ecosia (qui finance la plantation d’arbres) ou Lilo (qui soutient des projets solidaires). 🌱

    Aucun avis

Mis à jour

avr. 2025, 03:44 PM

Publié

févr. 2025, 07:51 AM

Catégorie

Scripts mailing

Produits connexes

Nous n'utilisons pas les cookies que produisent vos dispositifs de connexion. Voir Politique des cookies

J'ai compris