class VerifyProxy(object): def __init__(self): self.mysql = MysqlClient() def verify_proxy(self, scheme, ip, port): """ 使用百度测试代理的连通性,并返回响应时长(单位:ms) :param scheme: :param ip: :param port: :return: """ proxies = { scheme: scheme + '://' + ip + ':' + port + '/' } response_time = 0 status = '0' try: response = requests.get(scheme + '://www.baidu.com/get', proxies=proxies, headers = header) if response: response_time = round(response.elapsed.total_seconds() * 1000) status = '1' print(status) else: response_time = 0 status = '0' except: pass return ({'response_time':response_time,'status':status}) def verify_all(self): """ 验证住方法,从数据库中获取所有代理进行验证 :return: """ results = self.mysql.find_all() for result in results: res = self.verify_proxy(result[1], result[2], result[3]) proxy = { "id": result[0], "scheme": result[1], "ip": result[2], "port": result[3], "status": res["status"], "response_time": res["response_time"], } self.mysql.update_proxy(proxy) print('代理验证成功')
class VerifyProxy(object): def __init__(self): self.mysql = MysqlClient() def verify_proxy(self,scheme,ip,port,Anonymous_degrees): proxies = { scheme : scheme + '://' + ip + ':' + port } response_time = 0 status = '0' try: response = requests.get(scheme + '://httpbin.org/ip',proxies=proxies,timeout=5) if response.status_code==200: response_time = round(response.elapsed.total_seconds()*1000) status = '1' print(f'{proxies}能使用!') else: response_time = 0 status = '0' print(f'{proxies}不能使用!') except: pass return {"response_time":response_time,"status":status} def verify_all(self): results = self.mysql.find_all() for result in results: res = self.verify_proxy(result[1],result[2],result[3],result[4]) proxy = { "id":result[0], "scheme":result[1], "ip":result[2], "port":result[3], "Anonymous_degrees":result[4], "status":res["status"], "response_time":res["response_time"] } self.mysql.update_proxy(proxy) print('检查完毕..')