Sto utilizzando Beautiful Soup per estrarre tag div specifici e sembra che non sia possibile utilizzare la corrispondenza di stringa semplice .Espressione regolare in Python per Beautiful Soup
La pagina ha alcuni tag sotto forma di
<div class="comment form new"...>
cui voglio ignorare, e anche alcuni tag sotto forma di
<div class="comment comment-xxxx...">
dove le x rappresentano un numero intero di lunghezza arbitraria e le ellissi rappresentano un numero arbitrario di altri valori separati da spazi bianchi (di cui non sono interessato). Non riesco a capire l'espressione regolare di espressioni regolari , specialmente dal momento che non ho mai usato la re classe python.
Utilizzando
soup.find_all(class_="comment")
trova tutti i tag che iniziano con la parola commento. Ho provato con
soup.find_all(class_=re.compile(r'(comment)()(comment)'))
soup.find_all(class_=re.compile(r'comment comment.*'))
e un sacco di altre varianti, ma penso che mi manca qualcosa di ovvio qui su come espressioni o partita regex di lavoro(). Qualcuno mi può aiutare?
In primo luogo, stai utilizzando BS3 o BS4? Uno ha 'findAll', uno ha' find_all', né ha findall' ... – abarnert
Spiacente, BS4 - Non ho incollato direttamente dal mio codice, verrà modificato. – user1890572
Dannazione, perché ho avuto una risposta per BS3 ... ma per BS4, sembra che non gli piacciano gli spazi in classe forse? O forse non conosco abbastanza bene BS4. Posso abbinare "commento", ma non "commento commento". Lo esaminerò. – abarnert