Python reguläre Ausdrücke für Schöne Suppe
Ich bin mit Schönen Suppe, ziehen aus bestimmten div-tags, und es scheint, ich kann nicht verwenden
einfache string-matching.
Die Seite hat einige Markierungen in form von
<div class="comment form new"...>
was ich will, Sie zu ignorieren, und auch einige Markierungen in form von
<div class="comment comment-xxxx...">
wobei die x repräsentieren eine ganze Zahl beliebiger Länge, und die Ellipsen repräsentiert eine beliebige Anzahl von anderen Werten getrennt durch Leerzeichen (, ich bin nicht besorgt). Ich kann nicht herausfinden, die
die korrekte regex-Ausdruck, vor allem, da ich noch nie genutzt habe-python-re-Klasse.
Mit
soup.find_all(class_="comment")
findet alle tags beginnen mit dem Wort Kommentar. Ich habe versucht mit
soup.find_all(class_=re.compile(r'(comment)( )(comment)'))
soup.find_all(class_=re.compile(r'comment comment.*'))
und viele andere Varianten, aber ich glaube, ich bin etwas fehlt hier offensichtlich darüber, wie die regex-Ausdrücke oder match() arbeiten. Kann mir jemand helfen?
findAll
hat man find_all
weder findall
...Sorry, BS4 - ich habe keine paste direkt aus meinem code Bearbeiten.
Verdammt, da musste ich eine Antwort, für BS3... aber für BS4, sieht es wie es nicht wie Räume, Klassen vielleicht? Oder vielleicht, ich weiß nur nicht, BS4 gut genug. Ich kann das Spiel
'comment'
, aber nicht 'comment comment'
. Ich werde das prüfen.InformationsquelleAutor user1890572 | 2012-12-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube ich habe es:
Beachten Sie, dass, im Gegensatz zu den Gegenwert in BS3, es ist nicht dieses:
Und das ist, warum Ihr regexps nicht übereinstimmt.
Aber Sie kann übereinstimmen, z.B. dieses:
Beachten Sie, dass BS stellt den Gegenwert von
re.search
, nichtre.match
, so brauchen Sie nicht'comment-.*'
. Natürlich, wenn Sie wollen, zu entsprechen'comment-12345'
aber nicht'comment-of-another-kind
würden Sie wollen, z.B.'comment-\d+'
.Ich bin mir nicht sicher, warum, aber ich habe noch nicht gelesen haben, durch die BS4 docs über eine schnelle Dritte-Partei "die Migration von BS3" zu führen, also habe ich verwendet, um Durchwursteln Probleme wie in meinem eigenen code. Denken Sie nur, wenn ich schlauer, ich hätte das nicht beantworten können. 🙂
InformationsquelleAutor abarnert