J'essaie de faire une application qui racle mes dix premiers prix de stock liés à l'espace préféré. mais
élément de la liste
J'ai des problèmes avec mon code et je suis nouveau pour gratter. Une fois que cela mènerai cela pour travailler, je souhaite la mettre dans un fichier CSV et faire un graphique à barreau, j'aimerais de l'aide et des suggestions. Aussi je fais cela dans anaconda: p> Suivant vient où l'erreur semble être: p> après cela à Anaconda Cette erreur apparaît: p> Pouvez-vous également me dire s'il s'agit de la bonne façon de mettre mon code dans un CSV et avec les colonnes que je veux: p> < Pré> xxx pré> Je suis plus préoccupé par l'erreur actuelle, mais les deux seraient bien, merci p> p>
3 Réponses :
Je n'ai pas vraiment utilisé beauxoup code>. Mais il semble que vous ayez besoin de lire un fichier. Ils l'appellent
r code> dans votre code et il n'est réellement déclaré nulle part. P>
Vous pouvez essayer avec celui-ci
def parsePrice(r): soup = bs4.BeautifulSoup(r.text,"html") price=soup.find_all('div',{'class':'Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)" data-reactid="52">4.1500'})[0].find('span').text return price for r in results: parsePrice(r)
Donc, je mets cela, mais le code que vous m'avez donné est d'obtenir cette erreur: i NdexError Traceback (dernier appel le dernier)
Vous n'avez tout simplement pas défini la variable "R" ou ne l'ai pas transmise à la fonction.
#import libraries import bs4 from bs4 import BeautifulSoup #grequests is a unique library that allows you to use many urls with ease #must install qrequest in annacode use : conda install -c conda-forge grequests #if you know a better way to do this, please let me know import grequests #scraping my top ten favorite space companies, attempted to pick compaines with pure play interest in space urls = ['https://finance.yahoo.com/quote/GILT/', 'https://finance.yahoo.com/quote/LORL?p=LORL&.tsrc=fin-srch', 'https://finance.yahoo.com/quote/I?p=I&.tsrc=fin-srch' , 'https://finance.yahoo.com/quote/VSAT?p=VSAT&.tsrc=fin-srch', 'https://finance.yahoo.com/quote/RTN?p=RTN&.tsrc=fin-srch', 'https://finance.yahoo.com/quote/UTX?ltr=1', 'https://finance.yahoo.com/quote/TDY?ltr=1', 'https://finance.yahoo.com/quote/ORBC?ltr=1', 'https://finance.yahoo.com/quote/SPCE?p=SPCE&.tsrc=fin-srch', 'https://finance.yahoo.com/quote/BA?p=BA&.tsrc=fin-srch',] unsent_request = (grequests.get(url) for url in urls) results = grequests.map(unsent_request) for r in results: parsePrice(r) def parsePrice(r): soup = bs4.BeautifulSoup(r.text,"html") price=soup.find_all('div',{'class':'Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)" data-reactid="52">4.1500'})[0].find('span').text return price
Que voudriez-vous ajouter à mon code pour le faire fonctionner? Peux-tu me donner des conseils? Merci
Regardez la solution Nikolaynedelchev. C'est la même chose que j'ai écrite mais avec le code.
Si Python vous dit que 'R' n'est pas défini, alors "r 'n'est pas défini. Hourra Python! S'il vous plaît supprimer la question.
Avec Normal
Demandes CODE> Vous devez avoir
R = DemandesS.Oget (URL) CODE> Mais avec je ne sais pas ce que vous avez dans le reste du code. Peut-être devriez-vous avoir
def parseprice (R): code> et l'exécuter comme
parseprice (demande.get (URL)) code>? Ou peut-être que vous obtenez
request.get (URL) code> avec un nom différent de la variable. Je ne sais pas ce que vous avez dans
UNDENT_REQUEST code>