resetrouter.py 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. import time
  2. from selenium import webdriver
  3. from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
  4. import time
  5. import os
  6. import urllib.parse
  7. from selenium.webdriver.support.ui import WebDriverWait
  8. from selenium.webdriver.common.by import By
  9. from selenium.webdriver.chrome.service import Service
  10. from selenium.webdriver.support import expected_conditions as EC
  11. from selenium.webdriver.common.keys import Keys
  12. #import schedule
  13. import codecs
  14. import random
  15. import datetime
  16. import dataset
  17. import time
  18. import traceback
  19. import sys
  20. import random
  21. import socket
  22. import requests
  23. db = dataset.connect('mysql://choozmo:pAssw0rd@db.ptt.cx:3306/seo?charset=utf8mb4')
  24. table=db['general_log']
  25. driver = None
  26. headers = {
  27. "Authorization": "Bearer " + "6SDULL1Ebklduc6TFxa97AFto5Sj21kyJ30CxiLiSoi",
  28. "Content-Type": "application/x-www-form-urlencoded"
  29. }
  30. def scrolling(driver,pgnum):
  31. ub = driver.find_element_by_css_selector('body')
  32. for i in range(pgnum):
  33. ub.send_keys(Keys.PAGE_DOWN)
  34. if pgnum>1:
  35. time.sleep(0.3)
  36. def rua():
  37. pool = [
  38. "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:73.0) Gecko/20100101 Firefox/73.0",
  39. "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:76.0) Gecko/20100101 Firefox/76.0",
  40. "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"
  41. "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36",
  42. "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36",
  43. "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36",
  44. "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 OPR/68.0.3618.125",
  45. ]
  46. return random.choice(pool)
  47. def send_msg(kw):
  48. hname=socket.gethostname()
  49. params = {"message": hname+": "+kw}
  50. r = requests.post("https://notify-api.line.me/api/notify",headers=headers, params=params)
  51. def empty_query(q):
  52. global driver
  53. googleurl='https://www.google.com/search?q='+urllib.parse.quote(q)
  54. driver.get(googleurl)
  55. time.sleep(3)
  56. def process_query(qs):
  57. global driver
  58. # googleurl = 'https://www.google.com/search?q={}&num={}&hl={}'.format(urllib.parse.quote(q), 100,'zh-TW')
  59. googleurl = 'http://192.168.0.1/index.html'
  60. print(googleurl)
  61. driver.get(googleurl)
  62. time.sleep(6)
  63. # time.sleep(9999)id="pc-login-password"
  64. try:
  65. elmt = driver.find_element(By.XPATH, "//a[@data-localize='menu.system']")
  66. webdriver.ActionChains(driver).move_to_element(elmt).perform()
  67. webdriver.ActionChains(driver).move_to_element(elmt).click().perform()
  68. time.sleep(5)
  69. elmt = driver.find_element(By.XPATH, "//a[@data-localize='system_popup.settings_profile_left_tab']")
  70. webdriver.ActionChains(driver).move_to_element(elmt).perform()
  71. webdriver.ActionChains(driver).move_to_element(elmt).click().perform()
  72. time.sleep(5)
  73. elmt = driver.find_element(By.XPATH, "//input[@data-localize='system_popup.reboot']")
  74. webdriver.ActionChains(driver).move_to_element(elmt).perform()
  75. webdriver.ActionChains(driver).move_to_element(elmt).click().perform()
  76. time.sleep(5)
  77. elmt = driver.find_element(By.XPATH, "//button[contains(text(),'確定')]")
  78. webdriver.ActionChains(driver).move_to_element(elmt).perform()
  79. webdriver.ActionChains(driver).move_to_element(elmt).click().perform()
  80. time.sleep(5)
  81. except:
  82. traceback.print_exc()
  83. driver.quit()
  84. sys.exit()
  85. return "ok"
  86. def run_once():
  87. global driver
  88. result=[]
  89. user_agent = rua()
  90. options = webdriver.ChromeOptions()
  91. options.add_argument('--headless')
  92. options.add_argument("--no-sandbox")
  93. options.add_argument("--disable-dev-shm-usage")
  94. options.add_argument("--incognito")
  95. print('before init')
  96. os.system('killall -9 chrome.exe')
  97. driver = webdriver.Chrome(options=options)
  98. print('after init')
  99. driver.delete_all_cookies()
  100. driver.set_window_size(1400,1000)
  101. # driver.set_window_size(900, 3000)
  102. print('到此')
  103. data=process_query('')
  104. if data is not None:
  105. time.sleep(3)
  106. driver.quit()
  107. # /mnt/c/Windows/System32/cmd.exe /C python c:/gitlab/test/reboot.py
  108. #schedule.every(21).minutes.do(run_once)
  109. while True:
  110. run_once()
  111. time.sleep(900)