validators.py 852 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import requests
  2. validators = []
  3. def validator(func):
  4. validators.append(func)
  5. return func
  6. @validator
  7. def timeOutValidator(proxy):
  8. """
  9. 检测超时
  10. :param proxy:
  11. :return:
  12. """
  13. if isinstance(proxy, bytes):
  14. proxy = proxy.decode('utf8')
  15. proxies = {"http": "http://{proxy}".format(proxy=proxy)}
  16. try:
  17. # 超过10秒的代理就不要了
  18. r = requests.get('http://httpbin.org/ip', proxies=proxies, timeout=10, verify=False)
  19. if r.status_code == 200 and r.json().get("origin"):
  20. # logger.info('%s is ok' % proxy)
  21. return True
  22. except Exception as e:
  23. # logger.error(str(e))
  24. return False
  25. @validator
  26. def customValidator(proxy):
  27. """
  28. 自定义validator函数,校验代理是否可用
  29. :param proxy:
  30. :return:
  31. """
  32. return True