You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

20 lines
595 B

7 years ago
  1. class proxy_iter:
  2. def __init__(self,proxies):
  3. self._proxies = set(proxies)
  4. self.proxies = self._proxies.copy()
  5. self.bad_proxies = set()
  6. # self.used_proxies = {}
  7. def __next__(self):
  8. self.proxies -= self.bad_proxies
  9. if len(self.proxies) == 0:
  10. raise StopIteration
  11. elem = self.proxies.pop()
  12. if len(self.proxies) == 0:
  13. self.proxies = self._proxies.copy()
  14. return elem
  15. def __iter__(self):
  16. return self
  17. def blacklist(self,proxy):
  18. self.bad_proxies.add(proxy)