def get_proxy(self, num=None, order_level=OpsOrderLevel.NORMAL, sign_type="simple", **kwargs): """获取开放代理, 默认不需要鉴权 :param num: 提取数量, sign_type: 鉴权方式, order_level: 开放代理订单类型 :param kwargs: 其他关键字参数,具体有那些参数请查看帮助中心api说明 :return 若为json格式, 则返回data中proxy_list部分, 即proxy列表, 否则原样返回 """ if num is None: raise KdlNameError("miss param: num") if not isinstance(num, int): KdlTypeError("num should be a integer") endpoint = EndPoint.GetOpsProxyNormalOrVip.value if order_level == OpsOrderLevel.SVIP: endpoint = EndPoint.GetOpsProxySvip.value if order_level == OpsOrderLevel.PRO: endpoint = EndPoint.GetOpsProxyEnt.value params = self._get_params(endpoint, num=num, sign_type=sign_type, **kwargs) res = self._get_base_res("GET", endpoint, params) if isinstance(res, dict): return res['data']['proxy_list'] return res
def check_ops_valid(self, proxy=None, sign_type="simple", **kwargs): """检测开放代理有效性, 强制签名验证 :return 返回data部分, 格式为由'proxy: True/False'组成的列表 """ if not proxy: raise KdlNameError("miss param: proxy") if not (isinstance(proxy, list) or isinstance(proxy, tuple) or isinstance(proxy, str)): raise KdlTypeError("proxy should be a instance of list or tuple or str") if isinstance(proxy, list) or isinstance(proxy, tuple): proxy = ','.join(proxy) endpoint = EndPoint.CheckOpsValid.value params = self._get_params(endpoint, proxy=proxy, sign_type=sign_type) res = self._get_base_res("GET", endpoint, params) if isinstance(res, dict): return res['data'] return res
def get_kps(self, num=None, sign_type="simple", **kwargs): """获取独享代理, 默认"simple"鉴权 :param num: 提取数量, sign_type: 鉴权方式 :param kwargs: 其他关键字参数,具体有那些参数请查看帮助中心api说明 :return 若为json格式, 则返回data中proxy_list部分, 即proxy列表, 否则原样返回 """ if num is None: raise KdlNameError("miss param: num") if not isinstance(num, int): KdlTypeError("num should be a integer") endpoint = EndPoint.GetKpsProxy.value params = self._get_params(endpoint, num=num, sign_type=sign_type, **kwargs) res = self._get_base_res("GET", endpoint, params) if isinstance(res, dict): return res['data']['proxy_list'] return res
def set_ip_whitelist(self, iplist=None, sign_type="simple"): """ 设置订单的ip白名单, 强制签名验证 :param iplist参数类型为 str 或 list 或 tuple 如果为字符串则ip之间用逗号隔开 :return 成功则返回True, 否则抛出异常 """ if iplist is None: raise KdlNameError("miss param: iplist") if not (isinstance(iplist, list) or isinstance(iplist, tuple) or isinstance(iplist, str)): raise KdlTypeError("iplist type error, should be a instance of list or tuple or str") if isinstance(iplist, list) or isinstance(iplist, tuple): iplist = ','.join(iplist) endpoint = EndPoint.SetIpWhitelist.value params = self._get_params(endpoint, iplist=iplist, sign_type=sign_type) self._get_base_res("POST", endpoint, params) return True
def get_tps(self, num=None, sign_type="simple", **kwargs): """获取隧道代理IP, 默认"simple"鉴权 https://www.kuaidaili.com/doc/api/gettps/ :param num : 提取数量,int类型 :param kwargs: 其他关键字参数,具体有那些参数请查看帮助中心api说明 :return 若为json格式, 则返回data中proxy_list部分, 即proxy列表, 否则原样返回 """ if num is None: raise KdlNameError("miss param: num") if not isinstance(num, int): KdlTypeError("num should be a integer") endpoint = EndPoint.GetTps.value params = self._get_params(endpoint, num=num, sign_type=sign_type, **kwargs) res = self._get_base_res("GET", endpoint, params) if isinstance(res, dict): return res['data']['proxy_list'] return res
def get_dps_valid_time(self, proxy=None, sign_type="simple", **kwargs): """获取私密代理ip有效时间 :param proxy: 私密代理列表, 格式: IP:PORT, eg: 113.120.61.166:22989,122.4.44.132:21808 :param sign_type: 认证方式 :return: 返回data部分, 格式为由'proxy: seconds(剩余秒数)'组成的列表 """ if not proxy: raise KdlNameError("miss param: proxy") if not (isinstance(proxy, list) or isinstance(proxy, tuple) or isinstance(proxy, str)): raise KdlTypeError("proxy should be a instance of list or tuple or str") if isinstance(proxy, list) or isinstance(proxy, tuple): proxy = ','.join(proxy) endpoint = EndPoint.GetDpsValidTime.value params = self._get_params(endpoint, proxy=proxy, sign_type=sign_type) res = self._get_base_res("GET", endpoint, params) if isinstance(res, dict): return res['data'] return res