0
点赞
收藏
分享

微信扫一扫

用selenium模拟QQ空间登录

心如止水_c736 2022-03-12 阅读 188
from selenium.webdriver import Chrome, ActionChains
from selenium.webdriver.common.by import By
from time import sleep

sleep(1)

# 创建一个对象
web = Chrome()

web.get("https://qzone.qq.com/")
web.implicitly_wait(1)  # 设置等待时间,防止因为页面没加载出来而获取不到网页元素
web.switch_to.frame("login_frame")  # 加载嵌入在页面中的iframe定位元素

# 获取元素
web.find_element(By.CSS_SELECTOR, '#switcher_plogin').click()  # 点击账号密码登录
sleep(1)  # 延时一秒
qq_name = web.find_element(By.CSS_SELECTOR, '#u')  # 定位账号框
qq_pswd = web.find_element(By.CSS_SELECTOR, '#p')  # 定位密码框
qq_name.send_keys('账号')  # 输入账号
qq_pswd.send_keys('密码')  # 输入密码
sleep(1)
web.find_element(By.CSS_SELECTOR, '#login_button').click()  # 点击登录
print('点击登录')
sleep(1)
iframe = web.find_element(By.CSS_SELECTOR, '#tcaptcha_iframe')  # 找到“嵌套”的iframe
web.switch_to.frame(iframe)  # 切换到iframe
sleep(2)
print("寻找滑块")
button = web.find_element(By.CSS_SELECTOR, '#tcaptcha_drag_thumb')  # 寻找滑块
sleep(1)
print("开始拖动")
# 开始拖动 perform()用来执行ActionChains中存储的行为
distance = 170
action = ActionChains(web)
action.reset_actions()  # 清除之前的action
action.click_and_hold(button).perform()  # click_and_hold 点击并保持
action.move_by_offset(distance, 0).perform()
# action.release().perform()  # 释放action        # 这个释放有点问题,所以用下一行代码代替
button.click()      # 点击滑块(作为释放)
print('登录成功!')
sleep(10)
web.quit()  # 推出浏览器

这个代码是我今天写好的,用的是python3.8的特性,可以很好的用selenium模块模拟qq空间模拟登录。

打卡第65天,对python大数据感兴趣的朋友欢迎一起讨论、交流,请多指教!

举报

相关推荐

0 条评论