0
votes

Problème de raclage Web, r non défini? comment réparer?

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: xxx

Suivant vient où l'erreur semble être: xxx

après cela à Anaconda Cette erreur apparaît: xxx

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: < Pré> xxx

Je suis plus préoccupé par l'erreur actuelle, mais les deux seraient bien, merci


1 commentaires

Avec Normal Demandes Vous devez avoir R = DemandesS.Oget (URL) Mais avec je ne sais pas ce que vous avez dans le reste du code. Peut-être devriez-vous avoir def parseprice (R): et l'exécuter comme parseprice (demande.get (URL)) ? Ou peut-être que vous obtenez request.get (URL) avec un nom différent de la variable. Je ne sais pas ce que vous avez dans UNDENT_REQUEST


3 Réponses :


-1
votes

Je n'ai pas vraiment utilisé beauxoup . Mais il semble que vous ayez besoin de lire un fichier. Ils l'appellent r dans votre code et il n'est réellement déclaré nulle part.


0 commentaires

2
votes

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)


1 commentaires

Donc, je mets cela, mais le code que vous m'avez donné est d'obtenir cette erreur: i NdexError Traceback (dernier appel le dernier) IN 5 6 pour R dans les résultats: ----> 7 Parseprice (R) En Parseprice (R) 1 Def Parseprice (R): 2 Soupe = BS4.Beautifulsoup (R.Text, "HTML") ----> 3 Prix = Soupe .Find_All ('Div', {'Classe': 'TRSDU (0.3S) FW (B) FW (B) FZ (36PX) MB (-4PX) D (IB) "Data-réactid =" 52 "> 4.1500'}) [0 ] .Find ('Span'). Texte 4 Retour Prix 5 IndexError: Index de la liste hors de portée



1
votes

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


3 commentaires

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.