嗶哩嗶哩點選驗證碼
阿新 • • 發佈:2021-12-17
''' img_code ''' import random import time from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains from 技術提升.工具.chaojiying.chaojiying import get_code url = 'https://passport.bilibili.com/login?from_spm_id=333.851.top_bar.login_window' driver = webdriver.Chrome() driver.get(url) # for i in range(3): # 輸入賬號 time.sleep(random.randint(1, 3)) driver.find_element_by_id('login-username').send_keys('18736709382') # 輸入密碼 time.sleep(random.randint(1, 3)) driver.find_element_by_id('login-passwd').send_keys('xiuxiu521@') # 點選登入 time.sleep(random.randint(1, 3)) driver.find_element_by_xpath('//*[@id="geetest-wrap"]/div/div[5]/a[1]').click() time.sleep(5) # 截圖 driver.save_screenshot('驗證碼.png') els = driver.find_elements_by_xpath('//div[@class="geetest_widget geetest_medium_fontsize"]')[0] els.screenshot('bilibili.png') # 9004選擇一到四個點 number = get_code('./bilibili.png', 9004) print(number, type(number)) num = len(number.split('|')) - 1 for i in range(num + 1): pic = number.split('|')[i] # print(a1) time.sleep(random.randint(1, 3)) x, y = pic.split(',') ActionChains(driver).move_to_element_with_offset(els, int(x), int(y)).click().perform() time.sleep(random.random() * 3) time.sleep(random.random() * 2) driver.find_element_by_xpath('//div[@class="geetest_commit_tip"]').click() time.sleep(random.randint(30, 60)) url2 = 'https://www.bilibili.com/anime/index/?from_spmid=666.4.0.0#st=1&order=3&season_version=-1&spoken_language_type=-1&area=-1&is_finish=-1©right=-1&season_status=-1&season_month=-1&year=-1&style_id=-1&sort=0&page=1' driver.get(url2) print(driver.page_source) driver.close()