美文网首页
图片爬虫小结

图片爬虫小结

作者: 死鱼 | 来源:发表于2017-10-30 11:10 被阅读0次

前言

本文主要分享在爬站点图片过程中的一些踩坑总结

工具使用的是nodejs,外部依赖只使用了request、redis

分布式爬虫结构(类actor)

生产者爬取所有列表->产出pageUrl->生成任务给任务中心。

消费者注册->中心分配任务给消费者->消费者解析pageUrl成图片->下载到本地->回调中心

生产坑

1、任务过多,导致队列太大,内存溢出

解决方法:

1)使用redis均衡负载(靠谱

2)设置任务数量上限(成本低

解析坑

1、偶尔由于站点问题解析失败

图片站点服务未必稳定,有可能出现渲染失败的情况。这时候重试机制应该放在解析服务中,而不是由下载服务发起重试。

消费坑

1、远古资源下载速度极慢

原因1)

站点本身资源提供不稳定,某些资源永远请求都无响应。

解决方法:

设置超时重试,到一定次数则放弃该资源下载即可

原因2)

远古资源没有做CDN缓存,回源时间较长

解决方法:

1)坐等CDN回源

2)提前发起请求,然后消费者重新提交该任务,等下次消费到的时候就能下载CDN缓存的内容了

2、标题导致存储本地失败

原因&解决:

3、有部分重复广告图、脏数据

原因:

站点某些列表中的图片未必是我们需要的图片,有可能是站点下架后,摆上来的广告图。

解决方法:

1)存储几个文件MD5在本地,下载文件之前校验MD5是否match上广告图MD5,然后制定策略(更快)

2)下载后做离线处理,把一些几K的文件、脏数据清理掉(更稳)

4、失败case无法重跑

现象:

消费者拿完任务去下载,遇到异常失败的时候,没由正确收集失败case的方法。

解决方法:

1)在任务中心发任务和收任务、回调任务时做对比。保存失败的任务(优)

2)消费者自己记录失败case(已废弃)

相关文章

  • 图片爬虫小结

    前言 本文主要分享在爬站点图片过程中的一些踩坑总结 工具使用的是nodejs,外部依赖只使用了request、re...

  • 第四节练习项目:爬取美眉图片

    爬虫实战第二天 任务 爬取TaylorSift动态加载网页中前20页的图片,并保存到本地。 成果 源码 小结 ht...

  • python-爬虫学习(文字、图片、视频)

    爬虫-文字爬取 爬虫-图片爬取 爬虫-视频爬取

  • python爬虫学习(文字、图片、视频)

    爬虫-文字爬取 爬虫-图片爬取 爬虫-视频爬取

  • 【视频】手把手教你写抓美女爬虫~

    今天呢,大邓给大家写个爬图片的爬虫,毕竟之前写了验证码的爬虫,关于图片保存已经涉及了,那么咱们就来个图片爬虫吧。 ...

  • 爬虫小结

    大数库时代:数据如何产生: 1.大的公司大的企业:通过用户产生的用户2.大的数据平台:通过收集或者和其他企业或者公...

  • 爬虫小结

    爬虫是一段自动获取网络数据的程序,用于做搜索引擎等,想做爬虫得实现如下三部 (1).找到目标URL (2).根据U...

  • 爬虫小结

    爬虫:网络爬虫机器人,从互联网自动抓取数据的程序 理论上:通过浏览器看到的数据,我们一般都是可以获取到的 爬虫的作...

  • Python实战爬虫:爬图片

    python爬虫爬图片 爬虫爬baidu图片 第一步 载入爬虫模块 第二步 创建session对象 第三步 获得发...

  • Python学习

    python爬虫(六) python爬取图片素材 通过爬虫爬取图片的地址以及电影的名称,然后将图片素材命名为电影名...

网友评论

      本文标题:图片爬虫小结

      本文链接:https://www.haomeiwen.com/subject/ctlppxtx.html