Как достать текст из самого вложенного элемента 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()'):

Вторую ноду не получаю вообще, как исправить?
  • Вопрос задан
  • 352 просмотра
Пригласить эксперта
Ответы на вопрос 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)
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы