Ich benutze schöne Suppe, um bestimmte div-Tags herausziehen, und es scheint, dass ich einfache String-Matching nicht verwenden kann.Python regulären Ausdruck für schöne Suppe
Die Seite hat einige Tags in Form von
<div class="comment form new"...>
, die ich ignoriert werden sollen, und auch einige Tags in Form von
<div class="comment comment-xxxx...">
wo die x eine ganze Zahl von beliebiger Länge darstellen , und die Ellipsen stellen eine willkürliche Anzahl anderer Werte dar, die durch Leerräume getrennt sind (was mir nicht wichtig ist). Ich kann den korrekten Regex-Ausdruck nicht herausfinden, zumal ich Pythons re-Klasse nie benutzt habe.
Mit
soup.find_all(class_="comment")
findet alle Tags mit dem Wort Kommentar zu starten. Ich habe versucht,
soup.find_all(class_=re.compile(r'(comment)()(comment)'))
soup.find_all(class_=re.compile(r'comment comment.*'))
und viele andere Variationen, aber ich glaube, ich bin etwas offensichtlich hier, wie Regex Ausdrücke oder match() Arbeit fehlt. Kann mir jemand helfen?
Erstens, verwenden Sie BS3 oder BS4? Man hat 'findAll', man hat' find_all', keines hat 'findall' ... – abarnert
Sorry, BS4 - Ich habe nicht direkt aus meinem Code eingefügt, werde editieren. – user1890572
Verdammt, weil ich eine Antwort für BS3 hatte ... aber für BS4 sieht es aus, als ob es keine Leerzeichen in Klassen vielleicht mag? Oder ich kenne BS4 einfach nicht gut genug. Ich kann "Kommentar", aber nicht "Kommentar Kommentar" zuordnen. Ich werde es mir ansehen. – abarnert