찾다

 >  Q&A  >  본문

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일 전1208

모든 응답(3)나는 대답할 것이다

  • PHPz

    PHPz2017-04-18 10:21:05

    오늘 우연히 이 문제를 해결하는 방법을 배웠기 때문에 이에 대한 답변을 위해 이 질문을 특별히 번역했습니다. 질문자님, xpath의 축을 보면 됩니다. 예를 들어, 두 번째 <p> 태그의 "no aa no aa"를 얻으려면 실제로는 모든 하위 노드 의 텍스트 콘텐츠를 얻고 싶을 것입니다. .
    을 사용하여 얻을 수 있으며 결과는 element_dom.xpath("//p[2]//descendant::text()")과 같은 목록이며 수동으로 ['没', 'aa', '没', 'aa']과 같은 문자열로 연결할 수 있습니다. 마찬가지로, 다른 작업을 수행해야 하는 경우 유사한 방법을 사용할 수도 있습니다. "".join(list)

    회신하다
    0
  • 大家讲道理

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

    bs4로 변경하면 문자열과 텍스트의 유사점과 차이점이 여기에 있습니다.

    회신하다
    0
  • PHP中文网

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

    lxml.html의 .text_content() 메소드는 현재 노드와 모든 하위 노드의 텍스트 내용을 가져올 수 있습니다.

    회신하다
    0
  • 취소회신하다