lxml で xpath で text を検索した際の返却値のクラスは lxml.etree._ElementUnicodeResult のリストです。
返却値を str クラスにするには、str(...) で str クラスに変換します。
返却値を str クラスにするには、str(...) で str クラスに変換します。
import sys import lxml.html htmlstr = """ <html> <body> <div class="d1"> <div id="d2-1"> <div id="d3-1"> <p id="p4-1">p4-1 text</p> <p id="p4-2">p4-2 text</p> </div> <div id="d3-2"></div> </div> <div id="d2-2"> <p id="p3-3">p3-3 text</p> <p id="p3-4">p3-4 text</p> </div> </div> </body> </html> """ dom = lxml.html.fromstring(htmlstr) texts = dom.xpath("//div/p/text()") for text in texts: print(f"text: {type(text)}: [{text}]") print(f"str: {type(str(text))}: [{str(text)}]")