import requests from bs4 import BeautifulSoup import cloudscraper nome=[] desc=[] npezzi=[] prezzo=[] n=0 #scrape html # scraper = cloudscraper.create_scraper(browser={'browser': 'firefox','platform': 'windows','mobile': False}) # page = scraper.get("https://www.justeat.it/restaurants-saporedialeppo/menu").content # with open('aleppo.html', 'wb') as f: # f.write(page) with open('aleppo.html', 'rb') as f: page = f.read() soup = BeautifulSoup(page, "html.parser") menu = soup.find(attrs={"data-test-id": "menu-item"}) for menu in soup.find_all(attrs={"data-test-id": "menu-item"}): att=menu #riempie la lista "nome" for att in menu.find(attrs={"data-test-id": "menu-item-name"}): if att != " ": nome.append(att.lstrip().splitlines()[0]) #riempie la lista "desc" att=menu.find("p", class_="c-menuItems-description") if att != None: for att in menu.find("p", class_="c-menuItems-description"): desc.append(att.lstrip().splitlines()[0]) else: desc.append(None) # #riempie la lista "npezzi" # for att in menu.find_next(attrs={"data-test-id": "menu-item-description"}): # npezzi.append(att.lstrip().splitlines()[0]) #riempie la lista "prezzo" for att in menu.find("p", class_="c-menuItems-price notranslate"): prezzo.append(att.lstrip().splitlines()[0]) #stampa liste for x in range(len(nome)): print("\n") print(nome[x]) print(desc[x]) # print(npezzi[x]) print(prezzo[x]) #stampa lunghezza liste print("\nlista nomi:",len(nome)) print("lista desc:",len(desc)) print("lista npezzi:",len(npezzi)) print("lista prezzi:",len(prezzo))