下级网页的结构基本相似,但是有一个小地方的布局不同,导致数据采集缺失。
第一种形式:http://movie.mtime.com/209164/,这个地方首日票房和累计票房是纵向排列
QQ图片20180214200232.jpg


第二种形式:http://movie.mtime.com/203642/,这个地方首日票房和累计票房是横向排列
QQ图片20180214200307.png

由于样本页面是第一种,所以采集到的数据第二种的数据缺失。
按照第二种形式在同一主题下写了另一个规则,但是不知道为什么仍然没有采集到。求助
举报 使用道具
| 回复

共 5 个关于本帖的回复 最后回复于 2018-9-8 16:01

Fuller 管理员 发表于 2018-2-14 21:34:47 | 显示全部楼层
同一主题下写两个规则,就是解决这个问题的。但是要注意,在这两个规则中设置关键内容,某个或者某几个关键内容必须能作为识别标志。网页不能总是被第一个规则都识别去了。

当两个网页的结构不同,要么是DOM节点的层次关系不同,要么是class或者id代表的css样式不同。如果DOM层次关系不同,那么生成的采集规则中的xpath就会不一样。如果两个规则的关键内容分别具有不同的xpath,那么就可以准确地判断网页应该套用哪个规则。如果class或者id不同,那么就在关键内容上做定位标志映射,也能用来做区分
举报 使用道具
Fuller 管理员 发表于 2018-2-14 21:38:18 | 显示全部楼层
另外还有一个技巧,在命名主题工作台上的规则编号是用来排序的。比如,“规则-1”就排在“规则-2”前面,是按照字母顺序排的。用这个技巧可以控制DS打数机优先尝试哪个规则
举报 使用道具
xiaohongseeker1 初级会员 发表于 2018-2-17 14:23:26 | 显示全部楼层
解决了。两个网页虽然结构有点不同,但是要采集数据的地方class是一致的,所以我先用上层节点的class做定位标志,后用下级节点做内容映射,这样就采集到想要的数据了。非常感谢~
举报 使用道具
瑛姑 高级会员 发表于 2018-9-8 11:39:26 | 显示全部楼层
xiaohongseeker1 发表于 2018-2-17 14:23
解决了。两个网页虽然结构有点不同,但是要采集数据的地方class是一致的,所以我先用上层节点的class做定位 ...

我也出现类似的问题   请问你是怎么用上层节点的class做定位的呢?
举报 使用道具
Fuller 管理员 发表于 2018-9-8 16:01:53 | 显示全部楼层
瑛姑 发表于 2018-9-8 11:39
我也出现类似的问题   请问你是怎么用上层节点的class做定位的呢?

定位标志20180908155920.png

如上图,假设要采集手机的三个属性,他们有相同的@class='attr',爬虫很可能会自动使用这个相同的class值,这样就分不清第一个、第二个、第三个了。如果使用他们的上级节点,有@class='p-attribute',用这个值手工做定位标志映射给每个属性,那么,爬虫在生成定位规则的时候,以这个上级节点为基准去定位下面3个属性,就能分开了
举报 使用道具
您需要登录后才可以回帖 登录 | 立即注册

精彩推荐

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

热门用户

GMT+8, 2024-3-28 22:10