def get_equip(self, link): ## La lista che restituiremo equip = [] ## Faccio la richiesta response = requests.get(link) ## E' tutto in try e expect siccome potrebbe essere che non abbiamo nessuna equip. Per come è fatto, non possiamo ## Fare controlli. L'unica maniera è un try except try: ## Prendo il testo che contiene l'equipe prima_parte = \ BeautifulSoup(response.content, "html.parser").find(id="accordion-content-equipe-%c2%bb").contents[ 1].getText() ## Se contiene i : allora vuol dire che è semplice come struttura if prima_parte.__contains__(":"): ## Per non fare un codice stra lungo ( e siccome sono solamente 2 le pagine quelle diverse ) faccio questa cosa dove le toglie i due casi speciali if prima_parte.__len__() < 3000 and prima_parte.__contains__( "Antonio RAMPONI") == False: ## Nel caso normale, ## Prendo la prima parte, la divido in parti a seconda del :, prendo ciò che ci interessa e la ridivido per \n. Una volta questo, ## Itero ogni parte della lista e ci toglio le cose in più per poi toglierli le celle vuote e le varie eccezioni. ## Lo rendo una stringa per poi dividerlo ogni , equip = (list( filter( lambda val: val.split().__len__() != 1, list( filter( lambda val: val.__len__( ) != 0 and val != "Struttura semplice" and val != "Strutture semplici" and val != "Coordinatore Infermieristico", list( map( lambda val: val.strip(), prima_parte.split(":")[1].split( "\n")))))))) ## In questi 2 casi, li aggiungo "manualmente" elif prima_parte.__contains__("Antonio RAMPONI"): equip = [ "Cristiana BOZZOLA", "Francesca FOTI", "Angela GIACALONE", "Monica LEUTNER", "Emanuela UGLIETTI", "Guido VALENTE" ] else: equip = [ "Patrizia NOTARI", "Matteo VIDALI", "Vessellina KRUOMOVA", "Giuseppina ANTONINI", "Ilaria CRESPI", "Luisa DI TRAPANI", "Lucia FRANCHINI", "Roberta Rolla", "Marco Bagnati", "Patrizia PERGOLONI" ] else: ## Nel caso non abbia i :, allora ce la caviamo semplicemente così equip = \ prima_parte.strip().split(",") except AttributeError: pass ## Per risolvere un errore if equip.__len__() == 1 and equip[0].__len__() > 20: equip = equip[0].split(',') ## Chiudo la connessione response.close() ## Ritorno l'array return equip