lxml не может найти элемент с помощью селектора css

#python #python-3.x #css-selectors #lxml

#python #python-3.x #css-селекторы #lxml

Вопрос:

Я пытаюсь найти элемент на html-странице с помощью селектора css, но lxml не может найти этот элемент.

Страница примера здесь

Селектор CSS, который я использую: td.listadvlevo > table > tbody > tr:nth-child(4) > td:nth-child(2) > b

 html = etree.HTML(response.content)
sel = CSSSelector("td.listadvlevo > table > tbody > tr:nth-child(4) > td:nth-child(2) > b", translator='html')
print(len(sel(html)))
  

Результат приведенного выше кода будет равен 0, lxml ничего не найдет. На странице примера он должен найти <b> 4 300 000 Kč</b>

Эти селекторы работают нормально:

  • div.popis
  • div.drobky > a:nth-child(4)
  • div.drobky > a:nth-child(3)

У них такая же проблема:

  • table.listainzerat > tbody > tr > td:nth-child(1) > h1
  • td.listadvlevo > table > tbody > tr:nth-child(1) > td:nth-child(2) > b > a
  • td.listadvlevo > table > tbody > tr:nth-child(1) > td:nth-child(2) > a

Комментарии:

1. Каков ваш ожидаемый результат?

2. @JackFleeting На странице примера он должен найти <b> 4 300 000 Kč</b>

3. Пожалуйста, вставьте также HTML, чтобы мы могли видеть DOM

4. Страница @Rusty слишком большая, чтобы вставить ее в вопрос, используйте ссылку, которую я предоставил в вопросе

5. Ok рассмотрит это

Ответ №1:

Вам не хватает точки:

 td.listadvlevo > table > tbody > tr:nth-child(4) > td:nth-child(2) > b
  

Комментарии:

1. Извините, это ошибка при написании вопроса, исправлена и добавлено больше примеров селектора css

2. Попробуйте использовать td.listadvlevo br b