搜尋

首頁  >  問答  >  主體

xpath - python怎么用lxml处理

例如:

<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节点之后,怎么把里面的内容转换为字符串

伊谢尔伦伊谢尔伦2813 天前1209

全部回覆(3)我來回復

  • PHPz

    PHPz2017-04-18 10:21:05

    今天偶然學到處理這個問題的方法,特意翻出來這個問題回答。主題你可以看一下xpath的軸,例如你要拿到第二個<p>标签的“没aa没aa”,实际是取得它全部后代节点的文本内容,可以使用
    element_dom.xpath("//p[2]//descendant::text()")来取得,拿到的结果是一个这样['没', 'aa', '没', 'aa']的list,然后自己手动拼接成字符串就可以了,比如"".join(list)。同理,如果你需要進行其他操作,也可以使用類似的方法。

    回覆
    0
  • 大家讲道理

    大家讲道理2017-04-18 10:21:05

    換bs4,string和text之間的異同就在這裡。

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-18 10:21:05

    lxml.html的.text_content()方法,可以取得目前節點和所有子節點的文字內容。

    回覆
    0
  • 取消回覆