欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

div超出不换行_一日一技:XPath不包含应该怎么写?

发布时间:2025/4/16 编程问答 37 豆豆
生活随笔 收集整理的这篇文章主要介绍了 div超出不换行_一日一技:XPath不包含应该怎么写? 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

摄影:产品经理厨师:kingname

假设有这样一段HTML代码:

测试XPath移除功能

无关紧要的引用内容

你好啊

产品经理

很高兴认识你

我想把其中的 你好啊产品经理,很高兴认识你提取出来。

如果我们把XPath写成:

//div[@]/text()

运行效果如下图所示:

这是因为 /text()只会获取当前标签下面的文本,不会获取子标签的文本。

为了解决这个问题,我们在 /text()前面再添加一根斜线:

//div[@]//text()

这样就可以抓取这个 div标签及其子标签下面的所有文本。运行效果如下图所示:

现在问题来了, 无关紧要的引用内容是我不想要的,但是却被无差别抓取进来了。

如果能够实现,抓取 这个 div标签下的文本和除了 以外的所有子节点的文本就好了。

如果没有 你好啊这三个字,那么XPath可以这样写:

//div[@]//*[not(@)]/text()

这里的 //*[not(@)]的意思是说,这个 div标签下面的所有 class不为"quote"的子标签的文本。

运行效果如下图所示:

但比较麻烦的是, 你好啊这一句,它就是 div标签下的文本,它不属于任何子标签。所以上面的XPath无法获取到。

为了单独直接获取 div下面的内容,我们需要使用 |再拼接一个 XPath:

//div[@]/text() | //div[@]//*[not(@)]/text()

运行效果如下图所示:

不过结果是一个列表,并且有很多换行符,看起来不够清晰,于是用Python再进行清洗。最终效果如下图所示:

总结

以上是生活随笔为你收集整理的div超出不换行_一日一技:XPath不包含应该怎么写?的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。