WEB API模块-Python爬虫之构建代理池(四)

通过前面的文章,代理池已经可以简单进行使用了。我们的代理池应是独立于爬虫等服务的,可通用多个爬虫或者其他业务。那如何对外提供代理源呢?那最好的选择自然是做成一个web服务,通过api获取即可。

设计思路

我们的web服务只是提供简单代理池的一些操作,所以选择使用 Python 编写的简单好用的轻量级 Web 应用框架Flask。

开发

MyProxyPool项目中新建api.py

from flask import Flask, g
from redisdb import RedisCli


__all__ = ['app']
app = Flask(__name__)


def get_conn():
    if not hasattr(g, 'redis'):
        g.redis = RedisCli()
    return g.redis


@app.route('/')
def index():
    return '

Welcome to Proxy Pool System

' @app.route('/random') def get_proxy(): """ 获取随机可用代理 :return: 随机代理 """ return get_conn().random() @app.route('/count') def get_counts(): """ 获取代理池总量 :return: 代理池总量 """ return str(get_conn().count()) if __name__ == '__main__': # 测试代码 Tester().run()

这里只是简单提供了获取一个随机代理和代理总数的api接口,你可以自己根据需求添加入增加代理,删除代理等等接口。
运行后访问http://127.0.0.1:5000/可以看到

image

我们来随机获取一个代理和查看一下代理的数量
http://127.0.0.1:5000/random

image

http://127.0.0.1:5000/count

image

本节代码戳我

你可能感兴趣的:(WEB API模块-Python爬虫之构建代理池(四))