15715?1491492894

【缺陷】 爬虫内存优化 正常


张智雄添加于 2017-01-20 09:55
目前,爬虫的工作流程可分为三个阶段:首先,抽取html,并存放在listhtml表中;然后,从listhtml表中读出相关数据,从中抽取url信息并存放于url表中;最后,从url表中读出数据,并据此抽取相关的detail信息。
可以发现,对于后两个阶段来说,最开始的工作都是先将上一阶段得到的数据从相关表中读入内存,再做信息的抽取工作。每一阶段的存库以及接下来的从数据库中读都将会带来开销。
而实际上,对于抽取的原始html信息,其实是没有太大的保存价值的。于是,这一部分的数据库存取所带来的开销完全可以节省出来。原本的三个流程可以缩减为两个:抽取html并立即从中抽取出url信息;抽取detail信息。优化前,爬虫的三个处理流程所带来的内存开销为:300M,200M,200M(以抽取stackoverflow为例)。优化后,不再执行原本由UrlExtractor负责的处理逻辑,因此可以达到节省内存开销的目的。
另外,对目前爬虫中包含的已经确认的无用代码和无用的包进行了精简。

回复(1)
  • 15715?1491492894
    张智雄 7年前

    描述有点问题。精简的操作应该是 ListHtmlProcessor 和 ListHtmlPipeline 所包含的关于listhtml存库相关的操作。而Url的抽取移植到了第一步。。。

    在服务器上测试,内存减少约200M。

    代码已经上传至版本库zzx分支

0?1470885445
登录后可添加回复
  • 当前状态 新增
  • 选定优先级 正常
  • 指派给 张智雄
  • 里程碑 --
  • 开始日期 2017-01-20
  • 结束日期
  • 预计工时(H) 0.00 小时
  • 完成度 0%
  • 关联Commit

© Copyright 2007~2021 国防科技大学Trustie团队 & IntelliDE 湘ICP备 17009477号

问题和建议
还能输入50个字符 提交

加入QQ群

关注微信APP


×