快捷导航
如图,我想自定义红框里text的xpath,得到右边红框里的内容。用//span[contains(text(),'颗星')]/text()得到的节点不唯一。想利用红框中div的唯一id的写text节点,该如何写?

01.png
举报 使用道具
| 回复

共 5 个关于本帖的回复 最后回复于 2019-4-15 11:53

Fuller 管理员 发表于 2019-4-13 22:09:20 | 显示全部楼层
如果另一个含有“颗星”的内容并不在这个div下,那就好写:
  1. //div[@id='reviewMedly']//span/text()[contains(.,'颗星')]
复制代码


举报 使用道具
东皇田馥 初级会员 发表于 2019-4-14 15:41:20 | 显示全部楼层
Fuller 发表于 2019-4-13 22:09
如果另一个含有“颗星”的内容并不在这个div下,那就好写:

刚试过了,不幸的是在这个div下,包含“颗星”的text有很多个,定位编号23429的div下就有另一个。我想要的text应该是div下的第一个,那么该如何把这个条件写到xpath里呢?
举报 使用道具
Fuller 管理员 发表于 2019-4-14 15:54:10 | 显示全部楼层
东皇田馥 发表于 2019-4-14 15:41
刚试过了,不幸的是在这个div下,包含“颗星”的text有很多个,定位编号23429的div下就有另一个。我想要 ...

如果另一个并不在span下,就可以这样写
  1. //div[@id='reviewMedly']//span[contains(text(),'颗星')]/text()
复制代码

举报 使用道具
东皇田馥 初级会员 发表于 2019-4-14 23:04:44 | 显示全部楼层
多谢指点。解决了有评论的网页,但又有些网页没有评论出错,如下图所示。
在同一个div下,如何利用or运算符,使xpath表达式写成既能搜索span[contains(text(),'颗星')]/text()的,又能搜索H2[contains(text(),‘无顾客评论’)]/text()?
03.png

举报 使用道具
Fuller 管理员 发表于 2019-4-15 11:53:50 | 显示全部楼层
东皇田馥 发表于 2019-4-14 23:04
多谢指点。解决了有评论的网页,但又有些网页没有评论出错,如下图所示。
在同一个div下,如何利用or运算符 ...

这种应该直接手工修改爬虫规则,不要用自定义xpath了。

点击 “测试”按钮,看到测试输出窗口以后,点击“数据规则”tab,看到的规则可以直接修改
抓取规则20190415115019.png
例如,给那个抓取内容可以有再加一行xsl:value-of命令,一行采集有评论的,一行采集无评论的。

手工修改数据规则的时候,一定要注意操作顺序,因为自动生成的规则会把手工修改的内容冲掉,所以应该这样的顺序:
1,定义规则
2,点击工具条上的“存规则”,这样就保存了自动生成的规则
3,点击“测试”按钮,进入数据规则窗口,手工编辑规则
4,点击旁边的“保存修改”,把手工修改的内容存入服务器

点击保存修改以后,不能再点击“存规则”了,否则自动生成的规则再次冲掉手工修改的部分
举报 使用道具
您需要登录后才可以回帖 登录 | 立即注册

精彩推荐

  • 摘取泉港区政府工作报告中的数字遇到的问题
  • 调度设置参数说明
  • 集搜客网络爬虫软件实现自动网页截屏
  • 怎样使用搜狐新闻搜索列表快捷工具抓取关键
  • 用于清洗文本内容的Excel函数公式

热门用户

集搜客GooSeeker网络爬虫 ( 粤ICP备11065265号-2 )

GMT+8, 2019-7-18 00:57