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
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
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.
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).
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".
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"
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.
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).
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 :
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). 🌱
Votre avis va ici
avr. 2025, 03:44 PM
févr. 2025, 07:51 AM
Scripts mailing
Aucun avis