集搜客GooSeeker网络爬虫
标题: 样例复刻导致内容映射抓取错误 [打印本页]
作者: geekfan 时间: 2018-6-30 15:02
标题: 样例复刻导致内容映射抓取错误
规则名: lagou_java_test
使用的是嵌套样例复刻(我只对内层进行样例复刻, 因为当对外层样例复刻时, 会出现标签重复问题)
出现的问题:
[attach]9648[/attach]
问题演示(见附件):
[attach]9647[/attach]
请问各位前辈, 内容映射是正确的, 为什么样例复刻后, 会改变内容映射了呢? 该怎么解决呢??
作者: Fuller 时间: 2018-6-30 17:29
这个挺奇怪的,我还在测试
作者: Fuller 时间: 2018-6-30 19:42
[attach]9649[/attach]
1)你的规则做了一个嵌套整理箱,如果都不做定位标志映射,那就浪费了,没有必要用两层容器。但是这个网页刚好可以用上了。为第一层容器做定位标志映射,用那个UL节点做映射,就会把他的class属性作为定位标志,用于在网页上划定一个采集范围。具体参看: https://www.gooseeker.com/doc/article-344-1.html
2)因为有了最上面的定位标志划定了范围,就可以点击“定位”按钮,设置成绝对定位。如果没有先划定范围,用绝对定位生成的规则的适应性很差
3)重新为企业标签1做内容映射。抓混淆了的原因是:含有企业标签的这行和上面含有薪资的那行有相同的@class值,具体参看《避免不适合的定位标志影响抓取内容》。现在用了绝对定位,就不会使用这些@class和@id值作为定位标志了。
这样改进以后,就可以了
作者: geekfan 时间: 2018-6-30 21:20
非常感谢, 完全解决了我的问题
我本来对定位标志不太理解, 只将定位改成了绝对定位,没有给外层加定位标志, 发现也可以显示全部标签;
后来看了您的其它帖子, 了解到在整个页面中使用绝对定位,如果网站结构稍微变化, 规则就不能用了;
于是给外层整理箱加了定位标志, 并使用绝对定位, 这样爬虫不会从 html 头节点开始加载, 而是从定位标志处开始加载, 减短了 Xpath 的长度
欢迎光临 集搜客GooSeeker网络爬虫 (http://120.55.75.51/doc/) |
Powered by Discuz! X3.2 |