Utilisation de BeautifulSoup

Fermé
laura - Modifié le 1 mars 2022 à 18:14
mamiemando Messages postés 33499 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 janvier 2025 - 1 mars 2022 à 18:39
Bonjour,

Ma question concerne l'extraction de données a partir d'un site internet.

Je souhaite simplement relever la valeur de la cryptomonnaie ETHERUM - ETH avec le site internet :
https://www.blockchain.com/prices/ETH?timeSpan=1&scale=0&style=line

Le code html est :

<div width="fit-content" class="sc-1j9nxnw-0 dTjqWh">
<span color="grey900" class="sc-1ryi78w-0 jLizcp sc-1uwp5tk-0 kKnZAp" opacity="1">
<span color="grey800" class="sc-1ryi78w-0 jLizcp sc-1uwp5tk-0 r2g87f-6 fuptWv iTPDUE" opacity="1">USD2,621.66</span>
</span>
</div> 


Je souhaite récupérer la valeur USD2,621.66.

Mon code python est :

import requests 
from bs4 import BeautifulSoup

url="https://www.blockchain.com/prices/ETH?timeSpan=1&scale=0&style=line"
reponse = requests.get(url)
page = reponse.content 
soup = BeautifulSoup(page, "html.parser")
etherum=soup.find_all("span", class_="sc-1ryi78w-0 jLizcp sc-1uwp5tk-0 r2g87f-6 fuptWv >>>iTPDUE")
for cours in etherum : 
    print(cours)


Resultat :

<span class="sc-1ryi78w-0 jLizcp sc-1uwp5tk-0 r2g87f-6 fuptWv iTPDUE" color="grey800" opacity="1"></span>


Et aucune trace de la valeur que je recherche !

Merci de votre attention et de votre réponse; je suis bloqué.

3 réponses

yg_be Messages postés 23449 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 janvier 2025 Ambassadeur 1 564
24 févr. 2022 à 09:38
bonjour,
peux-tu poster ton code en utilisant les balises de code? https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
0
yg_be Messages postés 23449 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 janvier 2025 Ambassadeur 1 564
24 févr. 2022 à 09:54
comment as-tu obtenu le code html que tu montres?
ce n'est pas ce que je vois dans la page:
<div width="fit-content" class="sc-1j9nxnw-0 dTjqWh">
<span color="grey900" class="sc-1ryi78w-0 jLizcp sc-1uwp5tk-0 kKnZAp" opacity="1">
<span color="grey800" class="sc-1ryi78w-0 jLizcp sc-1uwp5tk-0 r2g87f-6 fuptWv iTPDUE" opacity="1">
</span>
</span>
</div>
0
mamiemando Messages postés 33499 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 janvier 2025 7 818
1 mars 2022 à 18:39
Bonjour,

Si on modifie légèrement ton code

import requests 
from bs4 import BeautifulSoup

url="https://www.blockchain.com/prices/ETH?timeSpan=1&scale=0&style=line"
reponse = requests.get(url)
page = reponse.content 
soup = BeautifulSoup(page, "html.parser")
ethereum = soup.find_all("span")
print(ethereum)


... on ne retrouvera pas le montant que tu cherches. En inspectant le site, on voir que le montant que tu veux récupérer est dans du Flex. Du coup, il faut peut être regarder un peu ce qui est indiqué cette discussion, car si ton montant n'est pas stocké dans
soup
tu ne risques pas de le retrouver. Passer par
selenium
te permettra peut être de tout récupérer...

Bonne chance
0