0
votes

Web gratter avec belleSoupe ne rien trouver

J'essaie de gratter CoInmarketCap.com Juste pour obtenir une mise à jour d'un certain prix de devise, aussi pour apprendre à sather web. Je suis toujours débutant et je ne peux pas comprendre où je vais mal, car chaque fois que j'essaie de le courir, cela me dit simplement qu'il n'y en a pas. Bien que je sache que cette ligne existe. Toute aide est appréciée!

p>

import requests
from bs4 import BeautifulSoup

url = 'https://coinmarketcap.com/currencies/electroneum/'
response = requests.get(url)
html = response.content

soup = BeautifulSoup(html, 'html.parser')
price = soup.find('data-currency-price data-usd=')
print (price)


1 commentaires

Vous n'utilisez pas trouver correctement. lire les documents


5 Réponses :


0
votes

Vous pouvez obtenir la valeur comme ceci:

import requests
from bs4 import BeautifulSoup

url = 'https://coinmarketcap.com/currencies/electroneum/'
response = requests.get(url)
html = response.content

soup = BeautifulSoup(html, 'html.parser')
price = soup.find("span", id="quote_price").get('data-usd')
print (price)


0 commentaires

0
votes

Vous devriez essayer d'être plus précis dans la manière dont vous voulez trouver l'article.

Vous utilisez actuellement Soupe.Find ('') Je ne suis pas sûr de ce que vous avez mis à l'intérieur de cette Comme vous l'avez écrit Data-Monnaie-Price Data-USD = Est-ce un identifiant un nom de classe?

Pourquoi ne pas essayer de trouver l'élément à l'aide d'un identifiant. xxx

ou trouver par balise xxx

ou quelque chose comme ça xxx


0 commentaires

0
votes
import requests
from bs4 import BeautifulSoup

url = 'https://coinmarketcap.com/currencies/electroneum/'
response = requests.get(url)
html = response.content

soup = BeautifulSoup(html, 'html.parser')
x=soup(id="quote_price").text
print (x)
Look for ID better,or search through soup.find_all(text="data-currency-price data-usd")[1].text 

0 commentaires

0
votes

Vous pouvez utiliser l'attribut de classe pour obtenir la valeur.

0.006778


0 commentaires

1
votes

Si vous allez faire beaucoup de ceci, envisagez de faire un seul appel en utilisant le API officielle et obtenez tous les prix. Puis extrayez ce que vous voulez. Ce qui suit est du site avec un amendement par moi pour montrer la valeur souhaitée pour l'électronéum. Le guidage de l'API montre comment récupérer une à la fois aussi, bien que Cela nécessite un plan plus élevé que la base.

import requests
from bs4 import BeautifulSoup

url = 'https://coinmarketcap.com/currencies/electroneum/'
response = requests.get(url)
html = response.content

soup = BeautifulSoup(html, 'html.parser')
soup.select_one('[data-currency-value]').text


1 commentaires

Cela devrait être plus efficace si cela fait beaucoup de ce travail.