from selenium import webdriver
import time
from selenium.webdriver import ActionChains
driver = webdriver.Chrome()
driver.get('https://www.douban.com/')
driver.set_window_size(1500, 1200)
login_frame = driver.find_element_by_xpath('//div[@class="login"]/iframe')
driver.switch_to.frame(login_frame)
time.sleep(2)
driver.find_element_by_xpath('//li[@class="account-tab-account"]').click()
driver.find_element_by_id('username').send_keys('xxxxx')
driver.find_element_by_id('password').send_keys('xxxx')
driver.find_element_by_class_name('btn-account').click()
time.sleep(4)
def get_tracks(distance):
v = 0
t = 0.5
tracks = []
current = 0
mid = distance*4/5
while current < distance:
if current < mid:
a = 2
else:
a = -3
v0 = v
s = v0*t + 0.5*a*(t**2)
current += s
tracks.append(round(s))
v = v0 + a*t
return tracks
auth_frame = driver.find_element_by_id('tcaptcha_iframe')
driver.switch_to.frame(auth_frame)
element = driver.find_element_by_xpath('//*[@id="tcaptcha_drag_thumb"]')
ActionChains(driver).click_and_hold(on_element=element).perform()
ActionChains(driver).move_to_element_with_offset(to_element=element,xoffset=180,yoffset=0).perform()
tracks = get_tracks(25)
for track in tracks:
ActionChains(driver).move_by_offset(xoffset=track,yoffset=0).perform()
time.sleep(0.6)
ActionChains(driver).release().perform()