mam te elementy w HTML chcę analizować:wybierania elementów tylko wtedy, gdy mają dwie klasy i mają te same pierwsza
<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>
Jak mogę zrobić selektor CSS, który wybrać elementy z linii klasy atrybutów i klasy coś innego (może być nagłówek, tekst lub cokolwiek innego) ALE nie atrybut linii klasy tylko?
Próbowałem:
td[class=line.*]
td.line.*
td[class^=line.]
EDIT
używam Python i BeautifulSoup:
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')
szukam do modyfikowania ostatni element, a mianowicie td.line do czegoś td.line.whateverotherclass
(ale nie td.line, w przeciwnym razie mój selektor wystarczyłby)
Świetnie! To dobre obejście. Dziękuję Ci! –
Jaką funkcję lambda powinienem napisać, aby uzyskać znaczniki podrzędne w taki sam sposób, jak poniższy wiersz kodu: DicoSoup.select ("body div # somed tr td") –
@MthClv mógłbyś, na przykład, zlokalizować rodzica 'div' najpierw , np .: 'div = soup.select_one (" body div # somed ")', a następnie użyj zmiennej 'div' zamiast' soup' podczas wyszukiwania elementów 'td' za pomocą funkcji wyszukiwania? Coś jak wyszukiwanie kontekstowe. – alecxe