例如:
<p>
没
<em><!--red_beg-->aa<!--red_end--></em>
</p>
<p>
没
<em><!--red_beg-->aa<!--red_end--></em>
没
<em><!--red_beg-->aa<!--red_end--></em>
</p>
<p>
没
</p>
就是在p标签里可能会出现同样的em标签,而且数量不定,那我怎么获取p的内容,包括em里的内容。
例如第二个p获取输出是‘没aa没aa’
或者获取到p节点之后,怎么把里面的内容转换为字符串
Saya secara tidak sengaja belajar cara menangani masalah ini hari ini, dan saya sengaja mengubahnya untuk menjawab soalan ini. Penanya, anda boleh melihat paksi xpath Contohnya, jika anda ingin mendapatkan "no aa no aa" tag
<p>
kedua, anda sebenarnya ingin mendapatkan kandungan teks semua nod keturunannya . Anda boleh menggunakanuntuk mendapatkan, hasilnya ialah senarai seperti ini
element_dom.xpath("//p[2]//descendant::text()")
, dan kemudian anda boleh menyambungnya secara manual ke dalam rentetan, seperti['没', 'aa', '没', 'aa']
. Begitu juga, jika anda perlu melakukan operasi lain, anda juga boleh menggunakan kaedah yang serupa."".join(list)
Tukar kepada bs4, persamaan dan perbezaan antara rentetan dan teks ada di sini.
Kaedah
.text_content()
lxml.html boleh mendapatkan kandungan teks nod semasa dan semua nod anak.