Python爬虫工程师必学——App数据抓取实战
Python爬虫工程师必学 App数据抓取实战
? ? 爬虫分为几大方向,WEB网页数据抓取、APP数据抓取、软件系统数据抓取。主要讲解如何用python实现App数据抓取
?
数据去重又称重复数据删除,是指在一个数字文件集合中,找出重复的数据并将其删除,只保存唯一的数据单元。数据去重可以有效避免资源的浪费,所以数据去重至关重要 ? 数据去重 ? ?数据去重可以从两个节点入手:一个是URL去重。即直接筛选掉重复的URL;另一个是数据库去重。即利用数据库的一些特性筛选重复的数据。 def process_spider_output(self,response,result,spider): for r in result: if isinstance(r,Request): #对结果进行分析,如果是url,继续下一步,否则跳过 key = self._get_key(r) #通过_get_key函数生成key if key in self.db: #查看key是否在数据库中 logger.info("Ignoring already visited: %s" % r) #如果在数据库,就抛弃 if self.stats: self.stats.inc_value(‘deltafetch/skipped‘,spider=spider) continue elif isinstance(r,(BaseItem,dict)): #对结果分析,如果是dict or item ,继续下一步 key = self._get_key(response.request) self.db[key] = str(time.time()) #对url进行持久化操作 if self.stats: self.stats.inc_value(‘deltafetch/stored‘,spider=spider) yield r def _get_key(self,request): #key值的生成,要么是request.meta传过来,要么使用指纹算法生成 key = request.meta.get(‘deltafetch_key‘) or request_fingerprint(request) return to_bytes(key) ? URL去重 如何确定去重强度?? 根据爬取周期确定使用去重强度?? 抓取周期在一个小时内,不需要对已经抓取的链接做持久化?? 抓取周期在一天内(或抓取的数据总量30w以下),需要对抓取链接做一个相对简单的持久化?? 抓取周期在一天以上,需要对抓取链接做相对专业的持久化 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |