ProxyApi.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. # -*- coding: utf-8 -*-
  2. # !/usr/bin/env python
  3. """
  4. -------------------------------------------------
  5. File Name: ProxyApi.py
  6. Description :
  7. Author : JHao
  8. date: 2016/12/4
  9. -------------------------------------------------
  10. Change Activity:
  11. 2016/12/4:
  12. -------------------------------------------------
  13. """
  14. __author__ = 'JHao'
  15. import sys
  16. from flask import Flask, jsonify, request
  17. sys.path.append('../')
  18. from Manager.ProxyManager import ProxyManager
  19. app = Flask(__name__)
  20. api_list = {
  21. 'get': u'get an usable proxy',
  22. 'refresh': u'refresh proxy pool',
  23. 'get_all': u'get all proxy from proxy pool',
  24. 'delete?proxy=127.0.0.1:8080': u'delete an unable proxy',
  25. }
  26. @app.route('/')
  27. def index():
  28. return jsonify(api_list)
  29. @app.route('/get/')
  30. def get():
  31. proxy = ProxyManager().get()
  32. return proxy
  33. @app.route('/refresh/')
  34. def refresh():
  35. # TODO refresh会有守护程序定时执行,由api直接调用性能较差,暂不使用
  36. # ProxyManager().refresh()
  37. pass
  38. return 'success'
  39. @app.route('/get_all/')
  40. def getAll():
  41. proxies = ProxyManager().getAll()
  42. return jsonify(list(proxies))
  43. @app.route('/delete/', methods=['GET'])
  44. def delete():
  45. proxy = request.args.get('proxy')
  46. ProxyManager().delete(proxy)
  47. return 'success'
  48. @app.route('/get_status/')
  49. def get_status():
  50. status = ProxyManager().get_status()
  51. return jsonify(status)
  52. def run():
  53. app.run(host='0.0.0.0', port=5000)
  54. if __name__ == '__main__':
  55. run()