get_random_free_proxy.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import requests
  2. import random
  3. from bs4 import BeautifulSoup as bs
  4. import traceback
  5. import time
  6. def get_free_proxies():
  7. url = "https://free-proxy-list.net/"
  8. # request and grab content
  9. soup = bs(requests.get(url).content, 'html.parser')
  10. # to store proxies
  11. proxies = []
  12. for row in soup.find("table", attrs={"class": "table-striped"}).find_all("tr")[1:]:
  13. tds = row.find_all("td")
  14. try:
  15. ip = tds[0].text.strip()
  16. port = tds[1].text.strip()
  17. proxies.append(str(ip) + ":" + str(port))
  18. except IndexError:
  19. continue
  20. return proxies
  21. url = "http://ipinfo.io/json"
  22. proxies = get_free_proxies()
  23. print(proxies)
  24. def first_proxy(proxies):
  25. while True:
  26. proxy = proxies[random.randint(0,len(proxies)-1)]
  27. try:
  28. response = requests.get(url, proxies = {"http":"http://"+str(proxy), "https":"https://"+str(proxy)}, timeout=1)
  29. print(response.json()['country'])
  30. print(response.json()['region'])
  31. print(response.text)
  32. break
  33. except:
  34. pass
  35. # if the proxy Ip is preoccupied
  36. # print("Not Available")
  37. return proxy
  38. print(first_proxy(proxies))