Sto facendo un po 'di pulizia dell'HTML con BeautifulSoup. Noob to both Python & BeautifulSoup. Ho ottenuto i tag di essere rimosso correttamente come segue, in base a una risposta che ho trovato altrove sul StackOverflow:Rimuovi tutti gli stili in linea usando BeautifulSoup
[s.extract() for s in soup('script')]
Ma come rimuovere gli stili inline? Per esempio il seguente:
<p class="author" id="author_id" name="author_name" style="color:red;">Text</p>
<img class="some_image" href="somewhere.com">
dovrebbe diventare:
<p>Text</p>
<img href="somewhere.com">
Come eliminare le classi in linea, id, attributi nome & stile di tutti gli elementi?
Risposte ad altre domande simili Potrei trovare tutti citati usando un parser CSS per gestire questo, piuttosto che BeautifulSoup, ma poiché l'attività è semplicemente quella di rimuovere piuttosto che manipolare gli attributi, ed è una regola generale per tutti i tag, io speravo di trovare un modo per farlo tutto all'interno di BeautifulSoup.
Stavo usando extract() nel caso in cui avessi deciso di generare un elenco di codice rimosso in qualsiasi momento, ma decompose() funziona altrettanto bene per rimuovere e distruggere completamente tag e contenuti. Grazie per lo snippet attribute-delete, funziona come un incantesimo! – Ila
Ha senso. Lascerò la nota su 'decompose()' per chiunque altro possa inciampare in questo. – jmk