У меня есть код для очистки отзывов об отелях на python (от yelp).
Код прекрасно очищает первую страницу отзывов, но я изо всех сил пытаюсь очистить следующие страницы.
Цикл while не работает, данные, собранные в каждом цикле, одинаковы (данные первой страницы)
import requests
from lxml import html
from bs4 import BeautifulSoup
url = 'https://www.yelp.com/biz/fairmont-san-francisco-san-francisco?sort_by=rating_desc'
while url:
r = requests.get(url)
t = html.fromstring(r.content)
for i in t.xpath("//div[@class='review-list']/ul/li[position()>1]"):
rev = i.xpath('.//p[@lang="en"]/text()')[0].strip()
date = i.xpath('.//span[@class="rating-qualifier"]/text()')[0].strip()
stars = i.xpath('.//img[@class="offscreen"]/@alt')[0].strip().split(' ')[0]
print(rev)
print(date)
print(stars)
next_page = soup.find('a',{'class':'next'})
if next_page:
url = next_page['href']
else:
url = None
sleep(5)
здесь sleep (5) beforeзапросить новый URL, чтобы избежать ограничений, установленных веб-сайтом.