私は昆虫のレビューに関する分析をしようとしていますが、複数のレビューで問題が繰り返されています。現在のコード:リスト番号の参照をループする方法
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
結果[0]は最初のレビューを参照してください。私は1、 2などをレビューするつもりです。誰もfirst_resultの結果をループする方法を知っていますか?
それはまだ結果(a)は、ない結果(LEN(A))である必要があり、 ナザール
「結果」はどのようなタイプですか?のリスト ...?そして、最初のループで何を達成しようとしていますか? – Miket25
'results [len(a)]'は 'TypeError'に導かれ、' int'型のオブジェクトは 'len()'を持ちません。あなたは 'results [a]'を意味しますか? 'a <21:a + = 1 'の間に意味がないように見えることにも注意してください。あなたは単一行 'first_result = results [21]'を使うことができます – Andersson