目的:建立自己的代理池。可以添加新的代理网站爬虫,可以测试代理对某一网址的适用性,可以提供获取代理的 API。
整个流程:爬取代理 ----> 将代理存入数据库并设置分数 ----> 从数据库取出代理并检测 ----> 根据响应结果对代理分数进行处理 ----> 从 API 取出高分代理 ----> 用高分代理爬取目标网站
分析:
1、爬虫类的编写:负责抓取代理并返回。
2、数据库类的编写:负责代理的存取与代理分数的设置。
3、保存类的编写:负责执行爬取,并将结果存入数据库。
4、测试代理类的编写:负责测试代理对目标网站的可用性。
5、提取代理 API 的编写:负责提供获取代理信息的接口。
具体实现:
1、Crawler:
2、RedisClient:
3、Saver:
4、Tester:
5、API:
总结:这里我只爬取了两个代理网站的代理,西刺和快代理,可以在 Crawler 类中添加名称以 crwal_ 开始的方法来扩充。详细代码我放到 Github上了,https://github.com/ysl125963/proxy-pool
原文:https://www.cnblogs.com/yangshaolun/p/10932846.html