摄影:产品经理厨师: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不包含应该怎么写?相关推荐

  1. div超出不换行_文字超出显示点点点之ellipsis 设置

    一般情况下一行文字在一定区域显示的话如果不限定高度,那么在内容超过的宽度的话就会换行显示,为了页面的美观,目前的通用做法就是在最后显示-,然后鼠标悬浮显示完整内容,具体设置如下: height: 40 ...

  2. div超出不换行_子div超出父div部分横向滚动,不换行

    父div: .rootBar{ width: 1920px; height: 216px; float: left; overflow-y: hidden; overflow-x: auto; whi ...

  3. html div 不要超出,css怎么设置div超出不换行?

    css怎么设置div超出不换行?下面本篇文章就来给大家介绍一下使用CSS设置div超出不换行的方法.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 在css中,可以使用white-s ...

  4. div超出不换行_css怎么设置div超出不换行?

    css怎么设置div超出不换行?下面本篇文章就来给大家介绍一下使用CSS设置div超出不换行的方法.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 在css中,可以使用white-s ...

  5. 怎样在excel表格中画斜线并打字_一日一技丨Excel斜线表头如何制作?标题、表头的4个技巧...

    来源 | 迅捷PDF转换器 (ID:xjpdf6)作者丨小小迅 「一日一技」是每天的知识分享专栏,一是分享一些PDF.Office.办公小技巧:二是抽取小可爱们在留言中的疑问并解决.希望对大家有所帮助 ...

  6. python中不被定义_一日一技:在Python中双下划线私有方法不能被调用的原理

    一日一技:在Python中双下划线私有方法不能被调用的原理 在使用Python编写面向对象的代码时,我们会常常使用"继承"这种开发方式.例如下面这一段代码: class Info: ...

  7. mongo 改字段名_一日一技:修改MongoDB集合中的字段名

    一日一技:修改MongoDB集合中的字段名 一日一技是一个每天更新的栏目,旨在使用3分钟的时间让你每天都有新的进步. 在我们使用MongoDB的过程中,经常会出现修改数据的情况.我们一般使用 upda ...

  8. div超出不换行_DIV元素不换行

    DIV盒子默认是换行独占100%宽度: DIV盒子没有赋予CSS样式时,默认DIV盒子是独占一行(宽度为100%). 如下默认情况HTML代码: html> div实例 www.dvicss5. ...

  9. python线程监控配置文件_一日一技:Python多线程的事件监控

    一日一技:Python多线程的事件监控 设想这样一个场景: 你创建了10个子线程,每个子线程分别爬一个网站,一开始所有子线程都是阻塞等待.一旦某个事件发生:例如有人在网页上点了一个按钮,或者某人在命令 ...

最新文章

  1. Go 学习笔记(65)— Go 中函数参数是传值还是传引用
  2. java jar包的路径
  3. mixed content 混合内容
  4. Android 哥哥福利
  5. go语言基础之递归函数的调用流程
  6. 《研磨设计模式》chap8 生成器模式Builder
  7. [云炬创业基础笔记]第七张创业资源测试11
  8. 解析函數論 Page 22 級數收斂的一個充分條件
  9. 网站程序IIS布署问题备忘录
  10. mongodb哪些情况适用内嵌,哪些情况适用引用
  11. Linux与时间相关的结构体及相关用法
  12. 睡眠音频分割及识别问题(六)--输入输出及方案讨论
  13. cmd编译java文件中文乱码_乱码 HelloWorld 世界你好 cmd 执行输出的中文java 显示乱码 解决 另附 win无法执行编译运行javac java编译文件的解决方案...
  14. js学习笔记(十二)——语法速查表
  15. Android Fragment-APP调用其他APP中的Fragment 1
  16. mybatis 调用 oracle函数_从Oracle到PG 该做的改造工作一个都不能少!
  17. 报表热切换是什么意思?如何做到?
  18. Liunx官网下载步骤
  19. Sails.js简介
  20. PDF怎样删除其中一页

热门文章

  1. Liunx下的日志清理shell脚本实战之日志备份
  2. 一次完整的HTTP事务过程--超详细!
  3. luogu P2679——子串
  4. 20179214 2017-2018 2《网络攻防实践》第七周学习总结
  5. jQuery extend方法介绍
  6. 2015 编程之美 八卦的小冰
  7. TorgoiseGit配置ssh密钥
  8. C++CTime使用方法
  9. oracle 表空间的相关操作
  10. 阶段-关口系统-stage2立项分析阶段---学习记录