缘起

鉴于最近在做爬虫工作,而我司代理池,并不带有很多比较高级的功能,使用体验可以说是比较差吧,同时也不支持配置,也不支持插件式扩展。更别说什么筛选、代理评分、等功能了。

所以就有自己来在做一个新的这样的想法,最近对 aiohttp 的使用可以说是比较熟练了。

框架设计

数据库选择

由于爬虫用的代理,多半对时效性要求高,所以主数据库会考虑使用 Redis 也不需要将 Redis 的数据同步到 MySQL 一类的数据库中。

有时候也需要对代理进行长期的持续的可用性测试,更加合理的对代理进行评价,而不是由于某一次的代理链接失败而否定掉代理,所以加入了 MySQL 用来存放代理的请求记录和日志。

代理抓取

  • 付费平台 付费平台大多会提供 API 式的添加方式,添加方便快捷,对调用频率有限制,返回结构统一,可以简单处理后就直接提取,这类代理预计会提供 web 界面或者配置文件。
  • 免费平台 免费代理平台大多需要通过手动抓取的方式进行,抓取多多少少会有些不能通用的规则,考虑会提供插件的接口。

代理获取

  1. 通过 Redis 直接代理。
  2. 通过 Web Api 对特定网站筛选之后的代理。