""" Web scraping nivel intermedio Con las librerias beautifulsoup4, lxml y requests """ import bs4 import requests # Variables URL_BASE = 'http://books.toscrape.com/catalogue/page-{}.html' FIN_URL = True PAGE = 0 lista_titulos = [] print(f'\nLIBROS CON 4 O 5 ESTRELLAS\n') # Bucle para formar url y añadir a una lista while FIN_URL: PAGE += 1 ENLACE = URL_BASE.format(PAGE) resultado = requests.get(ENLACE) sopa = bs4.BeautifulSoup(resultado.text, 'lxml') # Si existe la url if resultado: # Todos los títulos libros = sopa.select('.product_pod') # Mostramos la página y el enlace print(f'\nNÚMERO DE PÁGINA: {PAGE}\nENLACE: {ENLACE}\nLIBROS:') # Seleccionamos uno a uno cada libro for libro in libros: # Seleccionamos los libros que tengan 4 o 5 estrellas if libro.select('.star-rating.Four') or libro.select('.star-rating.Five'): # Seleccionamos el texto del title del elemento titulo_libro = libro.select('a')[1]['title'] # Mostramos el libro print(f'\t- \"{titulo_libro}\"') # Si no existe la url else: print("") FIN_URL = False