1. 程式人生 > 其它 >嗶哩嗶哩點選驗證碼

嗶哩嗶哩點選驗證碼

'''
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&copyright=-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()