Web scraping avec Python (Beautiful Soup)

Tout ce qui concerne la programmation.
Répondre
Avatar de l’utilisateur
lol
Site Admin
Site Admin
Messages : 4974
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Status : Hors-ligne

Salut les balèzes,

J'utilisais jusqu’à il y a peu un script en python de ce genre pour "scraper" une page Web.

Code : Tout sélectionner

"""A Simple Script for Extracting Data from a Webpage 
This script allows the user to extract data from a webapge and then export the data to a csv file with column(s).
"""# libraries
import urllib.request
from bs4 import BeautifulSoup
import csv# Put your URL here
url = 'https://www.nytimes.com/books/best-sellers/combined-print-and-e-book-nonfiction/'# Fetching the html
request = urllib.request.Request(url)
content = urllib.request.urlopen(request)# Parsing the html 
parse = BeautifulSoup(content, 'html.parser')# Provide html elements' attributes to extract the data 
text1 = parse.find_all('h3', attrs={'class': 'css-5pe77f'})
text2 = parse.find_all('p', attrs={'class': 'css-hjukut'})# Writing extracted data in a csv file
with open('index.csv', 'a') as csv_file:
  writer = csv.writer(csv_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_ALL)
  writer.writerow(['Title','Author'])
  for col1,col2 in zip(text1, text2):
    writer.writerow([col1.get_text().strip(), col2.get_text().strip()])
Le script est basé sur la librairie Beautiful Soup que tout le mon connait je pense.

Malheureusement le site a été refondu et plus rien de fonctionne
Curl génère d'ailleurs un fichier inutile, sans les informations qui m'intéressent (Pas de table par exemple...).

Auriez-vous une idée pour récupérer les informations de cette page (C'est le tx de change qui l'intéresse):
https://www.banky-foibe.mg/marche_marche-de-change


Merci pour vos lumières.
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

Salut !

Je ne pense pas faire avancé ton schmilblick,

le seul début de solution : Ouvrir la page avec FF et l'enregistrer dans un fichier au format texte (manuellement)
à partir de là tu as tes infos dans un état "brut"

Pour obtenir le même fichier directement par une commande ... je n'ai pas idée.

Il faut un navigateur programme en CLI qui exécute les scripts et enregistrer la sortie.

Lapalisse n'aurait pas mieux dit :give_rose:
**Simple Utilisateur** -- Debian stable - XFCE
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

1000000 excuses j'avais mal lu mon fichier texte, ce n'est pas le taux de change mais une autre donnée qui est affichée.

... et maintenant le site de répond plus .... la banque aurait-elle sautée ?... rien ne va plus! les jeux sont faits. :003:
**Simple Utilisateur** -- Debian stable - XFCE
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

Ce matin je n'ai pas la tête à sa place :
Principaux indicateursPrincipaux indicateurs

Taux de change du 27/02/2023
Cours de référenceUSD Ar 4 286,85
EUR Ar 4 512,28
C'est ce que tu recherches ? ou autre chose ?
**Simple Utilisateur** -- Debian stable - XFCE
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3546
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

Peut-être que cet URL est mieux ?

Code : Tout sélectionner

https://www.banky-foibe.mg/marche_marche-de-change#recherche-taux-de-change
**Simple Utilisateur** -- Debian stable - XFCE
Avatar de l’utilisateur
vv222
Membre actif
Membre actif
Messages : 852
Inscription : 18 avr. 2016, 20:14
Contact :
Status : Hors-ligne

Je vois que maintenant la page est générée intégralement en JavaScript, ça ne va clairement pas faciliter la tâche. Mais je teste quelques trucs ici, voir si je peux te proposer des pistes.

---

J’ai trouvé le cours des devises : https://www.banky-foibe.mg/admin/wp-jso ... rs_devises

Pour info je me suis contenté de charger la page avec l’inspecteur réseau de Firefox ouvert, et de filtrer uniquement les requêtes de type XHR. De là j’ai pu voir que les données de la page sont renseignées via de multiples fichiers JSON, ne restait plus qu’à fouiller un peu pour trouver le bon.
Avatar de l’utilisateur
lol
Site Admin
Site Admin
Messages : 4974
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Status : Hors-ligne

Salut,

Merci à vous deux.
Dezix, merci beaucoup, mais j'avais déjà vu cette page (Le XLS a téléchargé est corrompu, inexploitable)...
Si tu n'accède pas au site c'est que tu doit avoir été banni. Ils sont par très rigolos à la banque centrale de Madagascar... ;-)

@vv222 magnifique, tu es un champion! :clapping:
Et cerise il y a les 30 derniers jours de cotation.

Et même plus besoin de Beautiful Soup, le Json est directement exploitable.

Top! :good:
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Avatar de l’utilisateur
vv222
Membre actif
Membre actif
Messages : 852
Inscription : 18 avr. 2016, 20:14
Contact :
Status : Hors-ligne

En fait c’est mon métier depuis bientôt 2 ans, d’aller récupérer des données depuis des sites Web ou API peu coopératives, en particulier celles de banques :003:
Avatar de l’utilisateur
lol
Site Admin
Site Admin
Messages : 4974
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Status : Hors-ligne

vv222 a écrit : 28 févr. 2023, 15:20 En fait c’est mon métier depuis bientôt 2 ans, d’aller récupérer des données depuis des sites Web ou API peu coopératives, en particulier celles de banques :003:

Je suis tombé sur le spécialiste, c'est miraculeux! :yahoo:
Encore merci.
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Répondre