Задать вопрос

Как достать текст из самого вложенного элемента html (lxml lib)?

Как достать текст из самого вложенного элемента, при условии что текст может быть обернут во сколько угодно тегов или не обернут вообще.
Пример:
<span class='ocr_line' id='line_1_1' title="bbox 386 252 1468 539; baseline -0.006 5; x_size 377.55554; x_descenders 94.388885; x_ascenders 94.388885"><span class='ocrx_word' id='word_1_1' title='bbox 386 252 1468 539; x_wconf 70' lang='en' dir='ltr'>ENGLISH</span> 
     </span>
     <span class='ocr_line' id='line_1_2' title="bbox 675 528 1498 760; baseline -0.002 -1.185; x_size 308; x_descenders 77; x_ascenders 77"><span class='ocrx_word' id='word_1_2' title='bbox 675 528 1498 760; x_wconf 88' lang='en' dir='ltr'><strong>CRAZY</strong></span> 
     </span>

Я пока делаю так:
tree = html.fromstring(HTMLstring)
    for line in tree.xpath('.//span[@class="ocr_line"]'):

        for item in line.xpath('.//span[@class="ocrx_word"]/text()'):

Вторую ноду не получаю вообще, как исправить?
  • Вопрос задан
  • 375 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
если уверен, что текст только в итоговом вложенном
tree = html.fromstring(HTMLstring)
for line in tree.xpath('.//span[@class="ocr_line"]'):
    for item in line.xpath('.//text()'):
        print(item)


иначе - целься в текст

tree = html.fromstring(HTMLstring)
for line in tree.xpath('.//span[@class="ocr_line"]'):
    for item in line.xpath('.//text()[contains(.,"A")]'): # crAzy
        print(item)
    for item in line.xpath('.//text()[contains(.,"E")]'): # English
        print(item)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
от 200 000 до 300 000 ₽
Greenway Global Новосибирск
от 150 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽
31 янв. 2025, в 06:03
9999999 руб./за проект
31 янв. 2025, в 06:02
9999999 руб./за проект
31 янв. 2025, в 06:02
9999999 руб./за проект