#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