Selenium, beautifulsoup, requests et d'autres

Salut à tous,

Je suis en train de très sérieusement me pencher sur le scraping en python, et effectivement même sans tout maitriser, cela offre des options juste fantastiques.

Je commence à bien maitriser tout cela et du coup dans un but de scraping pur et dur, pour vous, quelles sont les meilleures bibliothèques à utiliser ?
Faire une cascade de plusieurs d’entre elle ?

Je trouve BS4 très intéressant, mais j’ai souvent plus de résultat avec Selenium

Bonjour,

il n’y a pas de meilleure bibliothèque, il y en a qui seront plus ou moins adaptées à ce que tu veux faire, en ce qui me concerne j’utilise :

du basique :

  • requests

avec parsing html:

  • requests + bs4
  • requests_html (je préfère)

qui gèrent l’asynchrone pour des requetes en paralèlle

  • aiohttp
  • httpx

framework complet, de plus haut niveau

  • scrapy

simulation de navigateur (pour des sites trop complexes à scraper avec des requetes simples):

  • selenium
  • playwright

mais ces dernières solutions sont beaucoup plus lentes que des requetes directes, et restent détectables par des anti-bots, si tu veux scraper un site qui est à la fois complexe (au sens de la navigation dans les pages et les données) et protégé, il faudra passer à d’autres solutions

2 « J'aime »

Super merci beaucoup pour tes indications ! Très utiles !

En fait disons que si on a le temps, autant partir sur scrapy, selenium et ou playwright pour scraper en profondeur que ce soit du complexe ou du simple. Comme ça on est sur d’arriver à de bons résultats :slight_smile:

Hello !

Perso, j’utilise depuis longtemps 3 librairies

  • Requests, pour accéder à la page
  • Regex, pour parser l’information
  • Futures, pour les requêtes en parallèle.

Ce trio me permet de littéralement tout scrapper, car ce sont des modules qui sont très flexibles. bs4 ou scrapy ne te permettront pas de scraper Google Maps, par exemple.

A ta dispo pour en discuter ou te montrer :slight_smile:

2 « J'aime »

@etal a peut-être aussi de bons conseils ?
:wink:

Merci des informations !
Qu’est-ce que tu entends par requêtes en parallèles ?

Je débute vraiment, et je passe littéralement mes nuits à apprendre tout cela, donc je ne comprends pas encore tout :smiley:

Un script python suit le déroulement suivant : tu lances, ca fait la tâche A, puis la B, jusqu’à la Z.

Si tu veux scraper une liste d’URLs, tu vas faire une boucle en python qui va scraper l’URL A, puis scraper l’url B, puis la C, jusqu’à ta dernière. Donc tu es obligé d’attendre que ta tâche A soit finie avant de faire la B !

Sauf que ton ordinateur te permet de lancer plusieurs scripts en python en même temps, et donc tu peux faire plusieurs tâches en parallèle au sein du même script python.
Le script pourra donc scraper l’URL A, l’URL B et l’URL C en même temps, puis l’URL D, E et F ensuite. Donc tu divises par 3 ton temps de script

1 « J'aime »

Des explications bien plus claires que toutes les études que j’ai pu faire MDR

Hyper compréhensible je comprends parfaitement, effectivement quand on lance de gros scrap l’enjeu temps rentre en jeu

Merci !

Le meilleur moyen d’apprendre c’est d’abord avec un use case simple : tu dois par exemple scraper tous les résultas d’une URL Amazon.
Demande à chatGPT de t’écrire le code, et essaye de comprendre le code qu’il t’écrit. Ensuite, utilise la même logique pour scraper une URL de Google, et casse toi les dents dessus jusqu’à arriver à extraire une info !

C’est 2 disciplines différentes d’accéder à l’information que tu veux extraire, et d’extraire cette même information. Certains sites sont très sécurisés, et d’autres sont quasi impossible à parser une fois que tu y as accédé, mais rien n’est impossible.

1 « J'aime »

Effectivement je ne fais que ca
Les scripts de base etc, ca commence à etre bon, je comprends bien et j’y arrive facilement
Je suis sur des sites un peu plus chaud, genre meme bien plus chaud, et au final petit à petit ca le fait :slight_smile:

1 « J'aime »