扫码关注官方订阅号
例如:
没 aa 没 aa 没 aa 没
没 aa
没 aa 没 aa
没
就是在p标签里可能会出现同样的em标签,而且数量不定,那我怎么获取p的内容,包括em里的内容。例如第二个p获取输出是‘没aa没aa’
或者获取到p节点之后,怎么把里面的内容转换为字符串
小伙看你根骨奇佳,潜力无限,来学PHP伐。
今天偶然学到处理这个问题的方法,特意翻出来这个问题回答。题主你可以看一下xpath的轴,比如你要取得第二个<p>标签的“没aa没aa”,实际是取得它全部后代节点的文本内容,可以使用element_dom.xpath("//p[2]//descendant::text()")来取得,拿到的结果是一个这样['没', 'aa', '没', 'aa']的list,然后自己手动拼接成字符串就可以了,比如"".join(list)。同理,如果你需要进行其他操作,也可以使用类似的方法。
<p>
element_dom.xpath("//p[2]//descendant::text()")
['没', 'aa', '没', 'aa']
"".join(list)
换bs4,string和text之间的异同就在这里。
lxml.html的.text_content()方法,可以获取当前节点和所有子节点的文本内容。
.text_content()
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
今天偶然学到处理这个问题的方法,特意翻出来这个问题回答。题主你可以看一下xpath的轴,比如你要取得第二个
<p>标签的“没aa没aa”,实际是取得它全部后代节点的文本内容,可以使用element_dom.xpath("//p[2]//descendant::text()")来取得,拿到的结果是一个这样['没', 'aa', '没', 'aa']的list,然后自己手动拼接成字符串就可以了,比如"".join(list)。同理,如果你需要进行其他操作,也可以使用类似的方法。换bs4,string和text之间的异同就在这里。
lxml.html的
.text_content()方法,可以获取当前节点和所有子节点的文本内容。