ich habe diese Elemente im HTML teilen Ich möchte analysieren:Auswählen von Elementen nur dann, wenn zwei Klassen haben und die gleiche erste
<td class="line"> GARBAGE </td>
<td class="line text"> I WANT THAT </td>
<td class="line heading"> I WANT THAT </td>
<td class="line"> GARBAGE </td>
Wie kann ich einen CSS-Selektor machen, die Elemente mit Attributen Klasse Linie wählen und etwas anderes klassifizieren (könnte Überschrift, Text oder irgendetwas anderes sein), aber nicht nur Klassenzeile?
Ich habe versucht:
td[class=line.*]
td.line.*
td[class^=line.]
EDIT
ich Python und BeautifulSoup bin mit:
url = 'http://www.somewebsite'
res = requests.get(url)
res.raise_for_status()
DicoSoup = bs4.BeautifulSoup(res.text, "lxml")
elems = DicoSoup.select('body div#someid tr td.line')
Ich suche in das letzte Stück zu modifizieren, nämlich td.line zu so etwas wie td.line.whateverotherclass
(aber nicht td.line alleine sonst würde mein Selektor schon ausreichen)
Großartig! Das ist ein guter Workaround. Vielen Dank! –
Welche Lambda-Funktion sollte ich schreiben, um untergeordnete Tags auf die gleiche Weise wie die folgende Codezeile zu erhalten: DicoSoup.select ('body div # somed tr td') –
@MthClv könnten Sie sagen, zuerst das Elternteil 'div' lokalisieren , zB: 'div = supp.select_one (" body div # somed ")' und dann die 'div'-Variable anstelle von' suppen' verwenden, wenn man mit der Suchfunktion nach 'td'-Elementen sucht? So ähnlich wie eine kontextspezifische Suche. – alecxe