소스 검색

添加获取全部代理ip方法和接口

dzr 1 년 전
부모
커밋
692eef6ebb
2개의 변경된 파일12개의 추가작업 그리고 0개의 파일을 삭제
  1. 9 0
      build_tools.py
  2. 3 0
      services/proxy.py

+ 9 - 0
build_tools.py

@@ -122,6 +122,15 @@ def show_proxy():
     return jsonify(data=pool)
 
 
+@app.route('/crawl/proxy/getips', methods=['GET'])
+@auth.login_required
+def show_proxy_ips():
+    socks_ips = socks5ProxyPool.get_all_proxy_ip('socks5')
+    http_ips = httpProxyPool.get_all_proxy_ip('http')
+    ip_dict = {'socks': socks_ips, 'http': http_ips}
+    return jsonify(data=ip_dict)
+
+
 @app.route('/upload/data/<scheduler_class_name>/<table>', methods=['POST'])
 @auth.login_required
 def upload_data(scheduler_class_name, table):

+ 3 - 0
services/proxy.py

@@ -260,6 +260,9 @@ class ProxyPoolClient(BaseProxyPool):
         # 展示时按照过期时间从大到小排列
         return list(sorted(_pool_proxy, key=lambda x: x['expire'], reverse=True))
 
+    def get_all_proxy_ip(self, protocol):
+        return [proxy['proxies']['http'].replace(f'{protocol}://', '') for proxy in self.get_all_proxy()]
+
     def proxies(self):
         lock = acquire_lock_with_timeout(self.redis_db, self.lock_label)
         if lock: