爬虫10 ——代理池的使用

最近在学崔庆才老师的课,于是使用了他的代理池。真别说,人家的项目还挺好用。这是项目地址:https://github.com/Python3WebSpider/ProxyPool

一、代理池的要求

1、多站抓取,异步检测:getter功能

首先要获取:getter 从各大网站爬取他们收集的代理,判断符合格式后,就添加进代理池

2、定时筛选,持续更新 :tester功能

过滤器tester将数据筛选,对可用代理和不可用代理打分以及剔除

3、提供接口,易于服务:server功能

服务器server将代理从代理池

二、详解

【中括号的内容为个人打算做的优化】

  • run.py
    通过argparse模块实现了只启动testergetterserver

  • gettter.py
    判断代理池是否已满,满了就不再获取新代理
    没满就挨个运行crawlers下的模块,获取新代理

【可以改成协程,更快点】

  • server.py
    flask搭建的,目前实现了两个:/random获取一个满分代理【如果存在】,不存在就随机取一个代理;/count获取代理池的代理总数

【这里可以添加更多内容,首页展示,满分代理个数,不取出重复的代理等等】

  • tester.py
    取出来一批代理和 httpbin获取到的ip比对,如果和本地ip相同或无法访问就代表代理不可用,分数-1;如果和本地ip不同就表示代理可用,设置为满分。分数为0时自动从代理池删除代理

【没必要每次都本地访问httpbin获取本地ip,而且有时httpbin不好用,不如自己搭建一个httpbin】

三、部署代理池

  • 将源码放在任意目录下,安装好python3,然后pip install -r requirement.text
  • 如果只是本地使用,就不用改API_HOST, 如果要支持远程访问,就得改成0.0.0.0
  • 开放5555端口防火墙和安全组

四、效果展示

本地跑起来像这样:
在这里插入图片描述
redis里能直接看到:
在这里插入图片描述

可以部署在云端:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值