qualcosa di simile?
from BeautifulSoup import BeautifulSoup
soup = BeautifulSoup(html)
anchors = [td.find('a') for td in soup.findAll('td')]
Questo dovrebbe trovare il primo "a" all'interno di ciascun "td" nel codice HTML fornito. È possibile modificare td.find
in modo più specifico oppure utilizzare findAll
se si dispone di più collegamenti all'interno di ciascun td.
UPDATE: re il commento di Daniele, se si vuole fare in modo di non ha nessun None
's nella lista, allora si potrebbe modificare l'elenco di comprensione così:
from BeautifulSoup import BeautifulSoup
soup = BeautifulSoup(html)
anchors = [a for a in (td.find('a') for td in soup.findAll('td')) if a]
che fondamentalmente solo aggiunge un controlla se hai un elemento reale restituito da td.find('a')
.
fonte
2009-06-29 14:37:15
purtroppo non funziona – Greyshack
@Greyshack, funziona bene per me (utilizzando l'attuale versione, ovviamente, 6+ anni dopo l'installazione post-pip originale di beautifulsoup4, e quindi ovviamente il nome del modulo è ora bs4) - stampa 'foo' , come richiesto. Ovviamente è impossibile offrirti un aiuto basato su una descrizione del tuo problema tanto vaga quanto "doesnt [sic] work"! -) –