2017-02-17 12 views
0

Ich lese in einer Webseite mit BeautifulSoup in Python. Viele Elemente sind Spannen, jedoch mit unterschiedlichen Werten für ihr Klassenattribut. z.B.Überprüfen, ob sowohl Attribut als auch Wert existieren mit BeautifulSoup

Value1 = property.findChild("span", {"class" : "search-result-Val1"}).text 
Value2 = property.findChild("span", {"class" : "search-result-Val2"}).text 

Das Problem ist, wenn ein Benutzer keinen Wert für Val1 oder Val2 eingegeben hat, wenn ihre Artikel zu speichern, sie nicht auf der Suchergebnisseite angezeigt werden, so brauche ich, wenn ein span-Tag besteht zu überprüfen, mit einem Attribut "Klasse" mit einem bestimmten Wert für dieses Attribut, bevor ich versuchen kann, seinen Wert zu extrahieren.

Wie könnte ich das tun? GetAttr() Methode hilft nicht, da es mir nur sagt, wenn das Attribut existiert, aber ich kann den Wert dieses Attributs nicht überprüfen, der in diesem Fall der Unterscheidungsfaktor ist.

+0

können Sie stellen die Verbindung der Seite, die Sie zu kratzen versuchen? –

Antwort

0

Für diese spezifische Instanz suchen Sie nach dem Klassenattribut. In diesem Fall können Sie eine property.findChild("span")["class"] machen und dann prüfen, ob sie eine der gewünschten Klassen enthält.

0

Verwendung list Filter:

Wenn Sie in einer Liste übergeben, schöne Suppe wird in dieser Liste einem String Match gegen jeden Artikel ermöglichen.

property.findChild("span", class_=["search-result-Val1","search-result-Val2"]) 
Verwandte Themen