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)
5 Réponses :
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)
Vous devriez essayer d'être plus précis dans la manière dont vous voulez trouver l'article.
Vous utilisez actuellement Pourquoi ne pas essayer de trouver l'élément à l'aide d'un identifiant. p> ou trouver par balise p> ou quelque chose comme ça p> Soupe.Find ('') code> 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? 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') 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
Vous pouvez utiliser l'attribut de classe pour obtenir la valeur.
0.006778
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
Cela devrait être plus efficace si cela fait beaucoup de ce travail.
Vous n'utilisez pas
trouver code> correctement. lire les documents