利用selenium进行模拟登录QQ空间

首先这是我们需要的库 

随后我们使用经典操作打开开发者工具,定位到密码登录的标签

 

随后,我们右键复制它的css地址,我们采用css的方式来进行定位

 

 使用同样的方法来获取账号框和密码框

我们创建一个webdriver对象,发起请求,然后我们发现我们要的东西在一个iframe页面里面,所以,这里我们使用web里面的switch_to.frame函数来跳转到iframe里面,这个函数里面的参数,可以是ID,也可以是name 

 然后我们使用webDriveWait对象来等待登录页面的出现,这个对象的使用方式也很简单,只要复制一下就差不多了( •̀ ω •́ )✧

我们使用login_by_password这一对象的click方法来模拟鼠标点击

同理我们用同样的方式处理账号和密码

我们使用send_keys这个方法来输入我们的账号和密码

 

 最后定位登录按钮就可以啦

注意:这种登录方式需要你本地已经登录过,不然会有滑块验证码,这个很麻烦

最后附上源代码

#模拟登录QQ空间
import requests
from requests import Session
from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
import os
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
init_url="https://qzone.qq.com/"#初始的网址
web=webdriver.Edge()
web.get(init_url)#get请求

#切换到iframe页面
web.switch_to.frame("login_frame")

# web是webdriver对象,10是最长等待时间,0.5是每0.5秒去查询对应的元素。until后面跟的等待具体条件,EC是判断条件,检查元素是否存在于页面的 DOM 上。
# 这行可以理解为 每0.5s连接到QQ空间的首页看看,有没有出来
login_= WebDriverWait(web, 10, 0.5).until(EC.presence_of_element_located((By.CSS_SELECTOR, "#switcher_plogin")))

#定位账号密码登录按钮
login_by_password=web.find_element(By.CSS_SELECTOR,'#switcher_plogin')
login_by_password.click()#点击

#继续等待
input_=WebDriverWait(web,10,0.5).until(EC.presence_of_all_elements_located((By.CSS_SELECTOR,'#u')))

#定位账号密码输入框
acount_input=web.find_element(By.CSS_SELECTOR,'#u')
password_input=web.find_element(By.CSS_SELECTOR,'#p')

acount="123456789"
password="xxxxxxxxxxxxxx"
sleep(1)
#输入账号密码
acount_input.send_keys(acount)
password_input.send_keys(password)

login_btn=web.find_element(By.CSS_SELECTOR,'#login_button')
login_btn.click()
sleep(5)
web.quit()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值