Comme nous l'avons déjà mentionné, nous devons récupérer le titre des publications, leur auteur et le nombre de votes positifs. Commençons par importer les paquets BeautifulSoup et Pandas, puis créons trois tableaux vides pour chaque type d'information dont nous avons besoin.
from bs4 import BeautifulSoup
import pandas as pd
titles = []
upvotes=[]
authors = []
Nous allons utiliser BeautifulSoup pour analyser le document HTML en écrivant les lignes suivantes :
content = driver.page_source
soup = BeautifulSoup(content, features="html.parser")
Après avoir inspecté le document HTML et choisi les bons sélecteurs, nous allons maintenant récupérer les titres, les votes positifs et les auteurs, puis les attribuer au tableau correspondant :
for element in soup.findAll('div', attrs={'class': '_1oQyIsiPHYt6nx7VOmd1sz'}):
title = element.find('h3', attrs={'class': '_eYtD2XCVieq6emjKBH3m'})
upvote = element.find('div', attrs={'class': '_3a2ZHWaih05DgAOtvu6cIo'})
author = element.find('a', attrs={'class': '_23wugcdiaj44hdfugIAlnX'})
titles.append(title.text)
upvotes.append(upvote.text)
authors.append(author.text)
Enfin, nous allons stocker ces informations dans un fichier CSV à l'aide du package Pandas que nous avons importé précédemment.
df = pd.DataFrame({'Post title': titles, 'Author': authors, 'Number of upvotes': upvotes})
df.to_csv('posts.csv', index=False, encoding='utf-8')
Et voilà ! Jetons un œil au fichier exporté :
Il semble contenir toutes les informations dont nous avons besoin.
Astuce bonus : parfois, nous avons besoin de plus de données que celles fournies par le site web lors du premier chargement. La plupart du temps, l'action de récupération des données se déclenche lorsque l'utilisateur fait défiler la page vers le bas. Si vous devez faire défiler la page vers le bas pour obtenir plus de données, vous pouvez utiliser la méthode .execute_script() comme ceci :
scrollDown = "window.scrollBy(0,2000);"
driver.execute_script(scrollDown)
Conclusion
J'espère que vous avez pris autant de plaisir que moi à créer ce scraper web. La programmation n'est pas toujours amusante, mais créer de petits scripts comme celui-ci me rappelle mes débuts et rend le processus beaucoup plus divertissant.
Cela dit, le script que nous avons réussi à créer dans ce tutoriel ne peut pas faire beaucoup de travail difficile. Il lui manque quelques fonctionnalités essentielles qui rendent le web scraping fluide. Se connecter à l'aide de proxys mobiles ou résidentiels et résoudre les CAPTCHA n'en sont que quelques exemples.
Si vous recherchez une méthode plus professionnelle pour extraire des données, jetez un œil à ce que WebScrapingAPI peut faire et voyez par vous-même si cela vous convient. Il existe une offre gratuite, donc le seul investissement requis est 30 minutes de votre temps.
Merci d'avoir pris le temps de lire cet article. Bon scraping !