使用pyquery过滤HTML时无法仅获取目标节点内容应如何处理?
出现多余HTML内容的原因是PyQuery在解析HTML片段时会自动补全完整的文档结构,直接打印PyQuery实例对象会连带输出补全的结构内容。你可以调用outer_html()方法获取指定节点本身的完整HTML内容,修改后的代码如下:
from pyquery import PyQuery as pq document = pq('<p id="hello">Hello</p><p id="world">World !!</p>') p = document('p') print(p.filter("#hello").outer_html())
运行后输出结果就符合你的预期:
<p id="hello">Hello</p>
补充说明:
- 若只需要获取节点内部的文本内容,调用
text()方法即可,示例:p.filter("#hello").text()返回值为Hello - 若只需要获取节点内部的HTML内容(不含当前节点的标签本身),调用
html()方法即可
内容的提问来源于stack exchange,提问作者Shulin Yang
相关产品推荐
相关产品推荐

