定位标志20201023162815.png

上面红框可以看到,我给内层容器做了定位标志映射,所有抓取内容也做了定位标志映射,本来是为了提高规则的适应性。但是,翻页到第二页,规则不适应,采集超时。

大家分析一下,针对链家新房信息爬取,应该怎样优化网络爬虫规则。

上面截图是集搜客数据管家软件,定义爬虫规则的功能即将发布,在官网上下载的1.7.3版本的集搜客数据管家需要跟集搜客网络爬虫软件配合在一起才能做规则。希望下周就能上线最新版本给大家使用。
举报 使用道具
| 回复

共 9 个关于本帖的回复 最后回复于 2020-10-23 17:20

发誓学好内容分析 金牌会员 发表于 2020-10-23 16:38:26 | 显示全部楼层
数据管家看起来跟集搜客网络爬虫软件界面很像,是怎样翻页到下一页,用当前规则分析页面的?
举报 使用道具
Fuller 管理员 发表于 2020-10-23 16:47:02 | 显示全部楼层
发誓学好内容分析 发表于 2020-10-23 16:38
数据管家看起来跟集搜客网络爬虫软件界面很像,是怎样翻页到下一页,用当前规则分析页面的? ...

数据管家尽量保持网络爬虫软件的使用习惯,在此基础上进行了很多改进,更加简洁和便捷。
无论数据管家还是网络爬虫,都有一个状态:内容定位。如果是内容定位状态,点击网页上的内容,会联动定位到DOM上一个节点,方便分析网页结构。但是,超链接也不能点击了,所以,无法翻页。

只要把内容定位状态取消了,就可以点击“下一页”链接了。

数据管家在浏览器上和DOM窗口上都有操作菜单,参看下图红框,其中红色箭头指向的就是 内容定位 按钮。橙色的时候是生效状态,用于选择网页元素;灰色就关闭了。紧接着下一个截图是网络爬虫软件的,是在顶部工具条中部,可以对比一下。


图1:数据管家界面
内容定位20201023163942.png


图2:网络爬虫界面
内容定位20201023164614.png
举报 使用道具
内容分析应用 金牌会员 发表于 2020-10-23 16:47:11 | 显示全部楼层
本帖最后由 内容分析应用 于 2020-10-23 16:49 编辑
发誓学好内容分析 发表于 2020-10-23 16:38
数据管家看起来跟集搜客网络爬虫软件界面很像,是怎样翻页到下一页,用当前规则分析页面的? ...

可以在数据管家上面先翻到第2页, 然后加载规则, 加载的时候不勾选那个“加载样本页面”的选项就可以了
QQ截图20201023164535.png

加载完了,记得点击“分析页面”
QQ截图20201023164836.png


举报 使用道具
Fuller 管理员 发表于 2020-10-23 16:52:10 | 显示全部楼层
内容分析应用 发表于 2020-10-23 16:47
可以在数据管家上面先翻到第2页, 然后加载规则, 加载的时候不勾选那个“加载样本页面”的选项就可以了
...

总结一下,为了用当前规则分析一个新页面,可以有这些方案,任选:

1,取消内容定位功能:这种特别适合用当前规则分析下一页
2,在一个新开的浏览器窗口中浏览一个网页,加载要分析的规则,加载的时候不要勾选“加载样本页面”,那么就可以用规则分析当前页面。这种特别适合分析一个全新加载的页面
3,在已经加载了规则的窗口中,替换浏览的网页,但是,会遇到一些提示,因为,通常在定义规则的时候,不允许换页面。如下图,点击地址输入栏以后,会有提示,如果点击“确定”,可以临时性允许加载另一个网页


加载20201023165115.png

举报 使用道具
发誓学好内容分析 金牌会员 发表于 2020-10-23 16:53:32 | 显示全部楼层
我们回归一下根本问题:怎样让规则在下一页也适应?当前不适应的原因是什么?

请大牛指教
举报 使用道具
内容分析应用 金牌会员 发表于 2020-10-23 16:57:53 | 显示全部楼层
本帖最后由 内容分析应用 于 2020-10-23 16:59 编辑

链接新房列表, 翻页后网页上的部分属性有变化,所以做规则的时候要避开那些有变化的@class
QQ截图20201023165349.png
为了抓取列表下的所有新房条目时, 如果做定位映射, 不要用图中li节点, 因为li节点的@class值第1页和第2页不同
可以用li下的那个div节点做定位映射


举报 使用道具
Fuller 管理员 发表于 2020-10-23 16:59:00 | 显示全部楼层
发誓学好内容分析 发表于 2020-10-23 16:53
我们回归一下根本问题:怎样让规则在下一页也适应?当前不适应的原因是什么?

请大牛指教 ...

样例20201023165520.png

如上图,给内部容器做了定位标志映射,选择的节点是元素节点LI,它有class属性作为定位标志,而这个LI刚好代表一条房产信息的网页区块,很合适。但是,这个LI的class到下一页就变了。这样规则就没法适应了。

要想办法避开这样的定位标志
举报 使用道具
Fuller 管理员 发表于 2020-10-23 17:01:45 | 显示全部楼层
我找到一个解决方案:使用区块内部的定位标志。

也就是说,定位标志不一定非要用区块节点上的class或者id,也不一定非要用区块外部的,区块内部的某些节点的定位标志也可以用来做定位标志映射。如下图

内部定位标志20201023170020.png
举报 使用道具
内容分析应用 金牌会员 发表于 2020-10-23 17:20:37 | 显示全部楼层
Fuller 发表于 2020-10-23 17:01
我找到一个解决方案:使用区块内部的定位标志。

也就是说,定位标志不一定非要用区块节点上的class或者id ...

还有1种方法, 可以做样例复制, 映射第1个样例和第2个样例后, 爬虫就会聪明的把整个楼盘列表都采集下来
QQ截图20201023171228.png

鼠标右键点击上图的第1个li,选择:样例映射->样例1-> list
鼠标右键点击上图的第2个li,选择:样例映射->样例2-> list
就完成了样例映射
注:上面的list是自定义的一个容器节点,下面用来放要采集的新房字段:比如名称, 房价。。。


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

精彩推荐

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

热门用户

GMT+8, 2024-3-29 04:39