例如:
<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节点之后,怎么把里面的内容转换为字符串
오늘 우연히 이 문제를 해결하는 방법을 배웠기 때문에 이에 대한 답변을 위해 이 질문을 특별히 번역했습니다. 질문자님, xpath의 축을 보면 됩니다. 예를 들어, 두 번째
<p>
태그의 "no aa no aa"를 얻으려면 실제로는 모든 하위 노드 의 텍스트 콘텐츠를 얻고 싶을 것입니다. .을 사용하여 얻을 수 있으며 결과는
element_dom.xpath("//p[2]//descendant::text()")
과 같은 목록이며 수동으로['没', 'aa', '没', 'aa']
과 같은 문자열로 연결할 수 있습니다. 마찬가지로, 다른 작업을 수행해야 하는 경우 유사한 방법을 사용할 수도 있습니다."".join(list)
bs4로 변경하면 문자열과 텍스트의 유사점과 차이점이 여기에 있습니다.
lxml.html의
.text_content()
메소드는 현재 노드와 모든 하위 노드의 텍스트 내용을 가져올 수 있습니다.