test_ip.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import traceback
  2. from selenium import webdriver
  3. from selenium.webdriver.common.by import By
  4. from selenium.webdriver.common.keys import Keys
  5. from selenium.webdriver.chrome.service import Service
  6. import json
  7. import redis
  8. import random
  9. import os
  10. import time
  11. import redis
  12. driver = None
  13. def re_get_webdriver():
  14. global port
  15. global driver
  16. result = []
  17. if driver is not None:
  18. print('closing....')
  19. driver.quit()
  20. os.system('killall chrome')
  21. print('quit....')
  22. driver = None
  23. try:
  24. #s = Service('/root/driver/chromedriver')
  25. options = webdriver.ChromeOptions()
  26. options.add_argument("--no-sandbox")
  27. options.add_argument("--disable-dev-shm-usage")
  28. options.add_argument("--headless")
  29. #options.add_argument('--remote-debugging-port=9222')
  30. #options.add_experimental_option("debuggerAddress", '127.0.0.1:9927')
  31. options.add_argument("--incognito")
  32. r = redis.Redis(host='db.ptt.cx', port=6379, db=2, password='choozmo9')
  33. data = r.get('google_proxy')
  34. jstext = data.decode('utf-8')
  35. jsobj = json.loads(jstext)
  36. proxy = random.choice(jsobj)
  37. change_ip_list = ['--proxy-server=%s' % proxy, "--proxy-server=socks5://127.0.0.1:9050",
  38. "--proxy-server=socks5://192.53.174.202:8180"]
  39. change_ip = random.choice(change_ip_list)
  40. options.add_argument(change_ip)
  41. print('使用代理ip', change_ip)
  42. driver.delete_all_cookies()
  43. driver = webdriver.Chrome(service=s, options=options)
  44. driver.set_window_size(1400, 1000)
  45. except:
  46. traceback.print_exc()
  47. driver = None
  48. return None
  49. def run_once():
  50. global driver
  51. re_get_webdriver()
  52. driver.get('https://api.ipify.org/')
  53. time.sleep(3)
  54. ip_address = driver.find_element(By.TAG_NAME, "body").text
  55. print(ip_address)
  56. driver.quit()
  57. run_once()