Extraire données page web
Résolu
ElCatala52
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
ElCatala52 Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
ElCatala52 Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
Bonsoir,
Je patine depuis un moment pour extraire des données d' une page web.Afin de clarifier le problème, je joins la partie de la page que je cherche à extraire:
Dans cet exemple, comment faire pour obtenir la valeur de high soit 5.728
Voici le début du code qui ne me ramène rien!!!
Merci de votre aide
Je patine depuis un moment pour extraire des données d' une page web.Afin de clarifier le problème, je joins la partie de la page que je cherche à extraire:
<header class="l-quotepage__header"> <div class="c-faceplate is-positive /*debug*/" data-faceplat#!/usr/bin/env python3 data-faceplate-symbol="1rPAF" data-ist="1rPAF" data-ist-init="{"symbol":"1rPAF","high":5.728,"low":5.29,"previousClose":5.51
Dans cet exemple, comment faire pour obtenir la valeur de high soit 5.728
Voici le début du code qui ne me ramène rien!!!
from bs4 import BeautifulSoup import urllib.request url = 'https://www.boursorama.com/cours/1rPALO/' req = urllib.request.Request(url) rslt = urllib.request.urlopen(req) soup = BeautifulSoup(rslt, 'html.parser') print(soup.find('div','c-faceplate '))
Merci de votre aide
EDIT : Correction des balises de code
A voir également:
- Extraire données page web
- Web office - Guide
- Extraire une video youtube - Guide
- Supprimer page word - Guide
- Extraire le son d'une vidéo - Guide
- Comment traduire une page web - Guide
3 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, tu patines aussi dans l'utilisation des balises de code: relis ceci: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
as-tu consulté la documentation pour déterminer comment écrire le second paramètre de la méthode find()?
as-tu consulté la documentation pour déterminer comment écrire le second paramètre de la méthode find()?
Autant pour moi, il manque au moins la moitié du message. Par contre, je ne vois pas comment le modifier?
Bonsoir,
En fait c' est simple. data-is-init est à considérer comme une liste. Il suffit donc de rapatrier cette liste dans une variable puis de décortiquer le contenu de cette variable. Si cela peut aider, je joins une partie du code du script python.
Ce code est sans prétention et est certainement perfectible.
Cordialement
En fait c' est simple. data-is-init est à considérer comme une liste. Il suffit donc de rapatrier cette liste dans une variable puis de décortiquer le contenu de cette variable. Si cela peut aider, je joins une partie du code du script python.
rqt = urllib.request.Request(url)
rslt = urllib.request.urlopen(rqt)
soup = BeautifulSoup(rslt, 'html.parser')
# Création de la liste cotation
listecote=soup.find("div","c-faceplate")
cotation = listecote["data-ist-init"]
#Extraire la cote la plus haute
departhaut= cotation.index(',')
departvaleurhaut = cotation.index(':', departhaut)
finhaut = cotation.index(',' , departvaleurhaut)
haut = cotation[(departvaleurhaut + 1):finhaut]
Ce code est sans prétention et est certainement perfectible.
Cordialement