class proxy_iter: def __init__(self,proxies): self._proxies = set(proxies) self.proxies = self._proxies.copy() self.bad_proxies = set() # self.used_proxies = {} def __next__(self): self.proxies -= self.bad_proxies if len(self.proxies) == 0: raise StopIteration elem = self.proxies.pop() if len(self.proxies) == 0: self.proxies = self._proxies.copy() return elem def __iter__(self): return self def blacklist(self,proxy): self.bad_proxies.add(proxy)