doc转htm,假如单独抓一份数据是ok,但是数量多就不好,规则不好鉴定,容易抓错内容,抓空,所以contains()函数是最常用的,根据文本中的标志文字定位节点


我把文件放到了百度云盘里了
http://pan.baidu.com/s/1ctg34E
规则不管怎么写都是不行,能不能详细指导一下我呢?
我用这个规则
规则一
//*[contains(./td//span/text(),'质式')][1]/td[2]  是能定位,就没有办法精确定位那个位置
规则二
  • //*[@class='MsoNormal'][contains(.//text(),'质式')]/../following-sibling::td[2]
完全定位不到



帮我看一下@xandy

举报 使用道具
| 回复

共 5 个关于本帖的回复 最后回复于 2017-3-13 11:39

沙发
Fuller 管理员 发表于 2017-3-10 18:37:02 | 只看该作者
主题名是什么?
举报 使用道具
板凳
zhuohui1987 金牌会员 发表于 2017-3-10 18:49:42 | 只看该作者
Fuller 发表于 2017-3-10 18:37
主题名是什么?

主题名给你也进去了啊,我是本地服务器搭建起来采集的
举报 使用道具
地板
zhuohui1987 金牌会员 发表于 2017-3-10 18:51:53 | 只看该作者
zhuohui1987 发表于 2017-3-10 18:49
主题名给你也进去了啊,我是本地服务器搭建起来采集的

主题:zh报告  给你没有用呀
举报 使用道具
5#
Fuller 管理员 发表于 2017-3-10 21:48:02 | 只看该作者
无法访问目标网页就无法帮你诊断,在百度上搜索xpath的教程,对着教程尝试一下其他xpath表达式
举报 使用道具
6#
xandy 论坛元老 发表于 2017-3-13 11:39:32 | 只看该作者
本帖最后由 xandy 于 2017-3-13 11:44 编辑

暂且理解为你就只抓下面这一单元格的内容:

先观察一下,文本中含“质式”的单元格很多,所以要让xpath具有唯一性,这样就要考虑如何通过同级或者父级、子级这样的关系来构建。(要理解很简单,叫小明这个名字的人有10个,但是这个小明的兄弟叫小天的可能就只有1个,所以可以通过关系来间接构建唯一性)。
定位上面要抓的目标单元格所在的行的xpath可以这样写:
  1. //*[contains(./td//span/text(),'实物状况描述与分析')]/following-sibling::*[contains(./td//span/text(),'质式')]
复制代码

定位上面要抓的目标单元格的xpath可以这样写:
  1. //*[contains(./td//span/text(),'实物状况描述与分析')]/following-sibling::*[contains(./td//span/text(),'质式')]/td[2]
复制代码

定位上面要抓的目标单元格的同级单元格xpath可以这样写:
  1. //*[contains(./td//span/text(),'实物状况描述与分析')]/following-sibling::*[contains(./td//span/text(),'质式')]/td[position()>1]
复制代码

举报 使用道具
您需要登录后才可以回帖 登录 | 立即注册

精彩推荐

  • Gephi社会网络分析-马蜂窝游记文本分词并同
  • Gephi社会网络分析-基于马蜂窝游记文本以词
  • 知乎话题文本根据词语间距筛选后生成共词矩
  • 马蜂窝游记文本分词后以词语间距为筛选条件
  • 学习使用apriori算法挖掘关联关系

热门用户

GMT+8, 2024-5-3 03:46