Python: использование цикла while для разбора нескольких страниц
Используя URL-адрес внутри функции в нижней части кода, я хочу разобрать все цитаты, которые перечислены на всех страницах. Однако этот код возвращает только кавычки первой страницы и дает URL-адрес на следующую страницу. Я хочу использовать цикл while для анализа цитат со следующей страницы и любых последующих страниц, на которых есть кнопка next.
import requests, bs4, urllib.parse def process(url): page = requests.get(url) soup = bs4.BeautifulSoup(page.text, 'html5lib') quotes = [] for quote in soup.select('div[class="quote"] > span[class="text"]'): quotes.append(quote.getText()) next_button = soup.select('li[class="next"] > a') if next_button != []: next_url = urllib.parse.urljoin(page.url, next_button[0]['href']) else: next_url = None return quotes, next_url process('http://quotes.toscrape.com/page/1/')
Что я уже пробовал:
Ввод оператора while перед функцией return возвращает тот же код, а ввод оператора while в качестве первой строки после определения функции ничего не возвращает. У меня такое чувство, что это как-то связано с номером страницы, поскольку он поднимается до страницы/10/, но я не могу точно понять, что это такое. http://quotes.toscrape.com/ также возвращает первую страницу.