Ich versuche, Analyse auf yelp Bewertungen zu tun, und ich habe Probleme, durch mehrere Überprüfungen zu schlängeln. Mein aktueller Code:Wie man eine Listennummerreferenz durchläuft
import requests
from bs4 import BeautifulSoup
r = requests.get('https://www.yelp.com/biz/pizzafire-cleveland')
soup = BeautifulSoup(r.text, 'html.parser')
results = soup.find_all('div', class_='review review--with-sidebar')
records=[]
for result in results:
a = 0
while a<21:
a += 1
first_result = results[len(a)] #this is where my code is breaking
#get review
REV1 = first_result.find('p').text
print REV1
#get date
Date = first_result.find('span', class_='rating-qualifier').text
print Date
#get username
username = first_result.find('li', class_='user-name').text
#get user location
userlocation = first_result.find('b').text
#get userrating
userrating = first_result.find('img', class_='offscreen').get('alt')
#get userstats
userstats = first_result.find('ul', class_='user-passport-
stats').text.split()
friendcount = userstats[0]
reviewcount = userstats[2]
photouploadcount = userstats[4]
yelpstatus = userstats[6]
#get user link
links=[]
for a in results[0]('a', href=True):
links.append(a['href'].split())
userlink= str(links[0])[4:-2]
print userlink
Ergebnisse [0] bezieht sich auf die erste Überprüfung. Ich möchte, dass es weitergeht, um 1, 2 usw. zu überprüfen. Kann jemand das Ergebnis in first_result durchlaufen?
Danke, Nazar
Welcher Typ ist 'Ergebnisse'? Eine Liste von ...? Und was versuchst du mit dem Beginn der Schleife zu erreichen? – Miket25
'results [len (a)]' sollte zu 'TypeError' als Objekt vom Typ' int' führen hat keine 'len()'. Meinst du "Ergebnisse [a]"? Beachten Sie auch, dass 'a <21: a + = 1 'keinen Sinn zu haben scheint. Sie können einfach die Zeile 'first_result = results [21]' verwenden – Andersson