Scraping page jaune
Bonjour,
Etant nul en codage je me tourne vers vous. Je souhaiterais scrapper les pages jaunes pour mettre dans un fichier excel les données liées à un métier sur une commune précise. Certains logiciels le font, mais ils font du scraping sur les 30 premiers professionnels. Or je souhaiterais le faire pour plus de 3 000 professionnels.
Merci d'avance pour votre aide
- Scraping pages jaunes
- Supprimer des pages sur word - Guide
- Comment numeroter les pages word - Guide
- Comment numéroter les pages sur powerpoint - Guide
- Comment restaurer les pages google - Guide
- Séparer pages pdf - Guide
1 réponse
Bonjour,
Préliminaires
Avant d'envisager du scrapping, il vaut souvent mieux regarder si le site met une API à disposition. L'avantage, c'est que le ton script restera valide même si la mise en forme du site des pages jaunes évolue. C'est d'autant plus important dans ton cas que si tu veux récupérer des milliers de contacts, ils seront probablement affichés sur plusieurs pages sur le site normal, ce qui rendra le script de scrapping d'autant plus compliqué à écrire.
Ça tombe bien, le site des pages jaunes propose une API utilisable sous ces conditions. Au bas de cette page, tu peux demander un accès (qui à terme, se présentera sous la forme d'un token). Une fois l'accès à l'API demandé, tu peux notamment utiliser la "Find Business API".
Exemple : Dans ton cas, pour chercher les pizzerias à Paris, on peut (sous réserve d'avoir un token) récupérer les résultats via : https://api.pagesjaunes.fr/v1/pros/search?what=pizzeria&where=paris
Implémentation
Pour envoyer une telle requête https en python, le plus simple consiste à utiliser le module requests. Celui-ci s'installe via PIP :
pip install requests
Cet exemple montre comment utiliser requests avec un token. Si tu parviens à l'adapter à ton cas d'usage, tu récupéreras en réponse une chaîne au format JSON et tu pourras facilement la convertir en dictionnaire avec le module json.
Exemple sur une autre API (sans token)
Voici comment convertir un résultat d'API json en un dictionnaire.
import requests import json from pprint import pprint api_url = "https://api.archives-ouvertes.fr/search/" query = "?fq=authFullName_s:(Dupont)&wt=json" token = "MY TOKEN" headers = { "Authorization": f"access_token {token}" } response = requests.get(api_url + query, headers=headers) data = json.loads(response.text)["response"] pprint(data)
Note que dans cet exemple, j'ai laissé à titre indicatif le token (qui est ignoré par l'API). Cependant, sur une API qui en attend, la manière dont on le passe dépend du site web (et normalement, est documentée) :
- La clé est généralement "Authorization",
- Le préfixe (ici "access_token") dépend de l'API.
Bonne chance