proxy.py 857 B

12345678910111213141516171819202122232425262728293031323334
  1. from proxypool.schemas import Proxy
  2. import re
  3. def is_valid_proxy(data):
  4. """
  5. is data is valid proxy format
  6. :param data:
  7. :return:
  8. """
  9. return re.match('\d+\.\d+\.\d+\.\d+\:\d+', data)
  10. def convert_proxy_or_proxies(data):
  11. """
  12. convert list of str to valid proxies or proxy
  13. :param data:
  14. :return:
  15. """
  16. if not data:
  17. return None
  18. # if list of proxies
  19. if isinstance(data, list):
  20. result = []
  21. for item in data:
  22. # skip invalid item
  23. item = item.strip()
  24. if not is_valid_proxy(item): continue
  25. host, port = item.split(':')
  26. result.append(Proxy(host=host, port=int(port)))
  27. return result
  28. if isinstance(data, str) and is_valid_proxy(data):
  29. host, port = data.split(':')
  30. return Proxy(host=host, port=int(port))