爬虫流程
使用浏览器驱动器或者app驱动器,模拟人工操作,获取接口响应或者有意义的DOM数据;对数据进行解析;解析结果存入到数据库。
这个过程的难点是:验证码处理,ip代理池,cookie池。
验证码处理
验证码有图形验证码,滑动验证码,宫格验证码,点触验证码。
- 图形验证码破解思路是使用灰阶ocr识别。
- 滑动验证码破解思路是图片对比,得出缺口位置,模拟人类滑动。
- 宫格验证码破解思路是图片对比,模拟人类滑动。
- 点触验证码破解思路是借助打码平台。
ip代理池
代理池由获取模块,存储模块,检测模块,接口模块组成。
从免费或付费服务获取ip,存入数据库。定时对其检测可用性。并提供服务接口给其它程序使用。
cookie池
代理池由获取模块,存储模块,检测模块,接口模块组成。
用用户名和密码获取cookie,存入数据库。定时对其检测可用性,若失效则更新cookie。并提供服务接口给其它程序使用。
爬虫的分布式架构
架构思路是一个服务器负责维护爬取队列,多个服务器负责爬虫调度服务。
难点是爬取队列的去重算法。
参考:
《Python3网络爬虫开发实战》