1 import time
 2 from selenium import webdriver
 3 from selenium.webdriver.common.by import By
 4 from selenium.webdriver.support.wait import WebDriverWait
 5 from selenium.webdriver.support import expected_conditions as EC
 6 from selenium.webdriver import ChromeOptions
 7 from selenium.webdriver import ActionChains
 8 
 9 class vcg_get_cookies1():
10     def proxyStart(self,driver,url):
11         """         
12      :param driver:
14 :param url: 15 :param username: 16 :param content: 17 :return: 18 """ 19 try: 20 while True: 21 # if key == '亲,访问被拒绝':24 # 要访问的目标页面 25 option = ChromeOptions() 26 option.add_experimental_option('excludeSwitches', ['enable-automation']) 27 option.add_experimental_option("prefs", {"profile.managed_default_content_settings.images": 2}) 28 ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36' 29 option.add_argument('user-agent=' + ua) 30 # option.add_argument( 31 # '--user-data-dir=C:\\Users\\Administrator\\AppData\Local\\Google\\Chrome\\User Data')33 driver = webdriver.Chrome(options=option) 34 driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", { 35 "source": """ 36 Object.defineProperty(navigator, 'webdriver', { 37 get: () => undefined 38 }) 39 """ 40 }) 41 driver.maximize_window() 42 driver.get(url) 43 time.sleep(1) 44 self.executionSlider(driver, username) 45 WebDriverWait(driver, 5).until( 46 EC.presence_of_element_located((By.XPATH, '//*[@id="submitBtn"]')) 47 ).click() 48 time.sleep(1) 49 self.executionSlider(driver) 50 except: 51 driver.quit() 52 self.proxyStart(driver,url) 53 54 def executionSlider(self,driver): 55 """ 56 验证滑块是否加载完成 57 滑动滑块 58 :param driver: 59 :return: 60 """ 61 action_chains = ActionChains(driver) 62 while True: 63 try: 64 WebDriverWait(driver, 2).until( 65 EC.presence_of_element_located((By.XPATH, '//*[@id="J-accName"]')) 66 ).send_keys(username) 67 WebDriverWait(driver,2).until( 68 EC.presence_of_element_located((By.XPATH,'//*[@id="nc_1_n1z"]')) 69 ) 70 slider = driver.find_element_by_xpath('//*[@id="nc_1_n1z"]') 71 if slider.is_displayed(): 72 # 拖拽滑块 73 action_chains.drag_and_drop_by_offset(slider, 258, 0) 74 # time.sleep(0.5) 75 # 释放滑块,相当于点击拖拽之后的释放鼠标 76 action_chains.release().perform() 77 time.sleep(1) 78 WebDriverWait(driver, 5, 0.5).until(EC.presence_of_element_located((By.CLASS_NAME, 'nc-lang-cnt'))) 79 if driver.find_element_by_class_name('nc-lang-cnt').text == '验证通过': 80 break 81 driver.refresh() 82 # self.getProxy() 83 except: 84 pass

 

posted on 2020-09-21 15:13  小和尚不吃素  阅读(837)  评论(0编辑  收藏  举报