前言


上面是去年写过一篇对另一个爬虫代理池的文章,这个代理池比较精简,资源消耗略小,而且效率高不少。

项目地址:链接
Demo:链接 (渣机勿压)

安装过程

  1. 创建虚拟环境(非必须)
    保险起见,最好创建一个虚拟环境。
    安装virtualenv

    pip3 install virtualenv

    创建纯净的虚拟环境

    virtualenv --no-site-packages proxypool

    激活虚拟环境

    cd proxypool
    source ./bin/activate

    当看到命令提示符前缀改变了,就说明虚拟环境切换成功了。

  2. 克隆仓库

    git clone https://github.com/Python3WebSpider/ProxyPool
  3. 安装依赖

    cd ProxyPool
    pip3 install -r requirements.txt
  4. 创建启动脚本
    这个项目的所有配置项都是通过环境变量来设置的,所以推荐创建一个启动脚本。
    所有可配置项请参考项目主页

    • Linux
      #!/bin/bash
      export REDIS_HOST='localhost' #Redis主机
      export REDIS_PORT=6379 #Redis端口
      export REDIS_PASSWORD='' #Redis连接密码
      export APP_DEBUG=false #是否启用调试模式
      export APP_ENV='prod' #运行环境 [dev|test|prod](开发|测试|生产环境)
      export API_HOST='0.0.0.0' #访问API的IP
      export API_PORT=5555 #访问API的端口
      python3 ./run.py

      记得给启动脚本执行权限

    • Windows
      set REDIS_HOST="localhost"
      set REDIS_PORT=6379
      set REDIS_PASSWORD=''
      set  APP_DEBUG=false
      set APP_ENV='prod'
      set API_HOST='0.0.0.0'
      set  API_PORT=5555
      python3 run.py
  5. 添加获取全部代理的API【可选】
    文件路径ProxyPool/proxypool/processors/server.py

    # 添加到38行左右,get_proxy函数的下面
    @app.route('/get_all')
    def get_all_proxy():
     """
     get a random proxy
     :return: get a random proxy
     """
     conn = get_conn()
     proxies = [x.string() for x in conn.all()]
     return '<br>'.join(proxies)
  6. 启动爬虫
    使用启动脚本运行,如果看到这样的日志就说明你已经弄好了
    运行日志

使用

API地址 方法 说明
/ GET api介绍
/get GET 获取随机代理
/get_all GET 获取所有代理(需要修改程序)
/count GET 查看可用代理的数量

例如,想获取一个随机代理就可以访问http://127.0.0.1:5555/get

最后修改:2020 年 07 月 05 日
Null