代码拉取完成,页面将自动刷新
如有Page没有配置成isUnique="1",会出现页面无限递归download的严重问题:
A 页面里存在 B, C 两个页面
B 页面存在 A, C 页面
C页面存在 A, B 页面
这时候如果不去重复,则会出现三个页面之间循环download的问题!
要解决此问题,可尝试使用以下思路:
1. 每个URL对象都记录parent,children
2. 从URL对象里发现的新URL放到children
3. URL的来源放到parent
children增加以下规则约束:
1. 排除自己
2. 排除parent,递归排除
这样就能保证不出现循环依赖问题。验证场景如下:
现状:
A -> A,B,C,D
B -> A,B,C,D
C -> A,B,C,D
D -> A,B,C,D
排除自己:
A -> B,C,D
B -> A,C,D
C -> A,B,D
D -> A,B,C
排除parent
A -> B,C,D
B -> C,D
C -> A,D
D -> A,B
递归排除parent
A -> B,C,D
B -> C,D
C -> D
D -> 空
最后的结果就是我们想要的结果了!
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
最后落地到代码层面的话,就是每个DownloadTask里都保存着它所有的Parents, 不仅仅当前一层的parent,而是包括上层,上上层,上上上层,直到seed
状态更改为 已关闭
状态更改为 重新打开
这里主要是要解决循环依赖,导致无限递归抓取的问题。
分支2.1-dev已解决。
状态更改为 已关闭
登录 后才可以发表评论