美文网首页大数据 爬虫Python AI Sql
WEB API模块-Python爬虫之构建代理池(四)

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

作者: 昵称你也抢我的 | 来源:发表于2018-10-16 20:59 被阅读0次

    通过前面的文章,代理池已经可以简单进行使用了。我们的代理池应是独立于爬虫等服务的,可通用多个爬虫或者其他业务。那如何对外提供代理源呢?那最好的选择自然是做成一个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 '<h1>Welcome to Proxy Pool System</h1>'
    
    
    @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爬虫之构建代理池(四)

        本文链接:https://www.haomeiwen.com/subject/jxdkzftx.html