Comment extraire des adresses e-mail à partir de sites web en utilisant Python.
La récupération d'adresses e-mail publiques à partir de sites web en utilisant Python peut grandement améliorer les ventes en fournissant un moyen de collecter facilement des informations sur les clients potentiels.
Cette technique permet aux entreprises d'atteindre un public plus large et de personnaliser leurs efforts de marketing, ce qui se traduit par une communication plus efficace et une augmentation des conversions. Cependant, il est important de toujours respecter les conditions d'utilisation des sites web et les lois sur la protection des données lors de la collecte d'adresses e-mail.
Dans ce blog, nous verrons comment utiliser Python pour extraire des adresses e-mail à partir du contenu d'un site web.
Exigences :
- Vous devez avoir Python installé.
- Installez les packages requests et beautifulsoup en utilisant la commande: pip install requests bs4.
Les points clés :
-
Comment envoyer des requêtes http en utilisant Python
-
Comment obtenir le contenu HTML d'une page en utilisant Beautifulsoup
-
Comment obtenir une liste d'adresses e-mail en utilisant les expressions régulières (Regex)
Comment envoyer des requêtes http en utilisant Python
Le package Requests est le package le plus utilisé en Python pour effectuer des requêtes http. Après l'avoir installé, nous pouvons utiliser la méthode get pour récupérer le contenu de la page demandée, comme illustré dans le code ci-dessous.
import requests
def main(url):
response = requests.get(url)
if response.status_code == 200:
text = response.text
print(text)
main('https://minelead.io')
Explication du code :
Pour utiliser le package requests, nous devons l'importer, et c'est ce que nous avons fait dans la première ligne.
Le package requests a plusieurs méthodes, nous sommes intéressés par la méthode get. Nous l'avons donc appelée et avons transmis l'URL du site web que nous voulons scraper.
Notre réponse contient de nombreuses attributs, nous avons vérifié si le code d'état est 200, alors nous avons imprimé le texte.
Comment obtenir le contenu HTML d'une page en utilisant Beautifulsoup
Beautiful Soup est une bibliothèque Python utilisée pour le web scraping. Elle permet d'analyser les documents HTML et XML, de naviguer dans l'arbre d'analyse, de rechercher et de modifier l'arbre d'analyse.
Avec Beautiful Soup, vous pouvez facilement extraire des données des sites web, telles que du texte, des liens et des images, puis utiliser ces données à des fins diverses telles que l'analyse de données, l'apprentissage automatique ou la création d'un scraper web. De plus, Beautiful Soup peut également gérer des documents HTML et XML mal formés, ce qui en fait un outil robuste et pratique pour le web scraping.
Nous l'utiliserons maintenant pour obtenir uniquement le corps de la page web que nous avons récupérée précédemment :
import requests
from bs4 import BeautifulSoup as bs
def main(url):
response = requests.get(url)
if response.status_code == 200:
text = response.text
soup = bs(text,'html.parser').body
print(soup)
main('https://minelead.io')
Explication du code :
Nous avons repris là où nous nous sommes arrêtés à l'étape précédente et avons simplement filtré le contenu du corps de la page à partir du contenu total de la page, y compris l'en-tête et les métadonnées qui ne nous intéressent pas.
Comme mentionné précédemment, Beautiful Soup a plusieurs parseurs, mais nous avons utilisé celui par défaut qui est html.parser.
Comment obtenir une liste d'adresses e-mail en utilisant les expressions régulières (Regex)
Jusqu'à présent, tout ce que nous avons fait était de préparer les données qui pourraient contenir des adresses e-mail. Pour récupérer ces adresses, nous utiliserons des expressions régulières (regex). Mais qu'est-ce que les regex exactement ?
Regex, abréviation de "expressions régulières", est un outil puissant utilisé pour rechercher, correspondre et manipuler du texte. Il s'agit d'une séquence de caractères qui définit un motif de recherche.
Ces motifs de recherche sont utilisés pour correspondre et extraire du texte à partir d'autres chaînes ou ensembles de chaînes.
Les regex sont utilisées dans divers contextes tels que :
- Rechercher et remplacer du texte dans des éditeurs de texte et des IDE.
- Valider la saisie utilisateur dans les formulaires.
- Correspondre et extraire des données à partir de fichiers journaux.
- Analyser et extraire des données à partir de sites web.
- Et de nombreuses autres utilisations où la manipulation de texte et la correspondance de motifs sont nécessaires.
Pour que les regex fonctionnent efficacement, nous devons passer une expression régulière précise. Si nous avons besoin de faire correspondre tous les e-mails, par exemple, nous ferons comme suit :
import requests
from bs4 import BeautifulSoup as bs
import re
def main(url):
response = requests.get(url)
if response.status_code == 200:
text = response.text
soup = str(bs(text,'html.parser').body)
emails = re.findall(r'[\w.+-]+@[\w-]+\.[\w.-]+',soup)
emails_set= set(emails)
print(emails_set)
main('https://minelead.io')
Explication du code
Après avoir appliqué la méthode Beautiful Soup sur le contenu, le type de ce dernier a été modifié, nous devons donc le reconvertir en chaîne de caractères pour pouvoir y appliquer l'expression regex.
Ensuite, nous avons appelé la méthode findall de regex sur le contenu converti.
Certaines adresses e-mail peuvent être répétées plusieurs fois, nous avons donc fait en sorte que chaque élément ne soit présent qu'une seule fois dans la variable emails_set en convertissant la liste renvoyée par findall en un ensemble.
Bonus
Pour tester cette méthode de manière plus réaliste, vous pouvez obtenir une liste d'entreprises à partir de mots-clés en utilisant l'API Minelead Generator et boucler sur chaque nom de domaine pour obtenir toutes les adresses e-mail qui y sont associées.
Vous pouvez vérifier ce qu'est une API et comment l'utiliser et suivre l'exemple fourni.
Conclusion
En conclusion, le web scraping pour les emails en utilisant Python est un outil puissant qui peut grandement améliorer les stratégies de vente et les efforts marketing. Le tutoriel fourni dans ce blog a montré à quel point il est facile d'extraire les adresses email à partir de sites web en utilisant la bibliothèque Beautiful Soup et les expressions régulières.
Cependant, il est important de noter que le scraping doit être fait de manière éthique et en conformité avec les lois et règlements. Vérifiez toujours les conditions d'utilisation et les politiques de confidentialité des sites web avant de gratter toute information.
De plus, soyez toujours respectueux de la vie privée des personnes et n'utilisez jamais les adresses email obtenues pour des spams ou des communications non sollicitées. Avec la bonne approche, le scraping peut être un outil précieux pour toute entreprise cherchant à étendre sa portée et personnaliser ses efforts de marketing.