Mam plik HTML:wyodrębnić tekst z lxml.html
<html>
<p>somestr
<sup>1</sup>
anotherstr
</p>
</html>
chciałbym wyodrębnić tekst jako:
somestr anotherstr
ale nie mogę dowiedzieć się, jak to zrobić. Napisałem to_sup()
funkcję, która przekształca ciągów numerycznych SuperScript więc najbliżej mam coś takiego jak:
for i in doc.xpath('.//p/text()|.//sup/text()'):
if i.tag == 'sup':
print to_sup(i),
else:
print i,
ale ElementStringResult
nie wydaje się mieć metodę, aby uzyskać nazwę znacznika, więc jestem nieco Stracony. Wszelkie pomysły, jak to rozwiązać?
No, to pominięcie tekstu() z zapytania i wyodrębnij tekst bezpośrednio z węzłów. –
@ user1833746 - wypróbowany 'dla x w doc.xpath (" // p | // sup "): print (x.text)', ale to tylko wyprowadza 'somestr1' – root