test_ip.py 2.3 KB

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