Ejemplo n.º 1
0
 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