Python模拟登录QQ邮箱和QQ空间(selenium)

Python模拟登录QQ邮箱和QQ空间(selenium)


1、准备工作

  • python3,pycharm
  • 安装selenium (windows电脑安装:pip install selenium )
  • 浏览器驱动安装:http://npm.taobao.org/mirrors/chromedriver/(这里使用的是Chrome浏览器,根据版本号下载对应的版本,在设置->关于Chrome里查看),解压后把chromedriver.exe放在文件夹C:\用户\用户名\AppData\Local\Programs\Python\Python37\内。

        

 


2、过程分析

1、QQ邮箱

  • QQ邮箱账号密码登录页:邮箱登录界面
  • 在页面上点击右键->检查,为了实现自动登录,需要在网页源代码里找到账号密码输入框和登录按钮对应的标签位置。

        

  • 在编写代码时建议使用classid定位元素的位置,因为这两个值是唯一的。 
find_elements_by_class_name          #通过元素的class属性选择
find_elements_by_id                  #通过元素的id选择
find_elements_by_tag_name            #通过元素的标签选择
find_elements_by_name                #通过元素的name属性选择
find_elements_by_link_text           #通过链接文本获取链接
find_elements_by_partial_link_text   #通过部分链接文本获取链接
  • 输入和点击,可以使用如下指令:
send_keys()   # 模拟输入
click()       # 模拟点击

2、QQ空间

  • 登录页:https://qzone.qq.com/
  • 与上面提供的QQ邮箱登录页不同的是,提供的QQ空间登录页模拟登录时需要切换到iframe模式

    (在模拟登录时可能遇到定位不到元素的问题,这时候就需要考虑到iframe的问题,读者可以进入QQ邮箱的这个登录页https://mail.qq.com/进行切换iframe模拟登录练习

 

        

  • 使用指令driver.switch_to.frame('login_frame')切换到登录面后,接下来的操作与上述模拟登录QQ邮箱相同。

3、代码实现

 

1、邮箱登录

#模块导入
import time
from selenium import webdriver #从selenium库中调用webdriver模块

account = input('请输入登录账号\t')
password = input('请输入登录密码\t')

driver = webdriver.Chrome()   #打开一个chrome浏览器
driver.get('https://xui.ptlogin2.qq.com/cgi-bin/xlogin?target=self&appid=522005705&daid=4&s_url=https://mail.qq.com/cgi-bin/readtemplate?check=false%26t=loginpage_new_jump%26vt=passport%26vm=wpt%26ft=loginpage%26target=&style=25&low_login=1&proxy_url=https://mail.qq.com/proxy.html&need_qr=0&hide_border=1&border_radius=0&self_regurl=http://zc.qq.com/chs/index.html?type=1&app_id=11005?t=regist&pt_feedback_link=http://support.qq.com/discuss/350_1.shtml&css=https://res.mail.qq.com/zh_CN/htmledition/style/ptlogin_input_for_xmail51328e.css') # 访问页面
time.sleep(2) #等待2秒,等候浏览器加载数据


login = driver.find_element_by_id('switcher_plogin') #账号密码登录点击位置
login.click()
time.sleep(2)

username = driver.find_element_by_id('u') #账号输入框
username.send_keys(account) #输入账号

pwd = driver.find_element_by_id('p') #密码输入位置
pwd.send_keys(password) #输入密码

button = driver.find_element_by_id('login_button') #登录按钮点击位置
button.click() #模拟点击

time.sleep(10) #等候几秒,看看效果
driver.close() #关闭浏览器

2、空间登录

import time
from selenium import webdriver #从selenium库中调用webdriver模块

account = input('请输入登录账号\t')
password = input('请输入登录密码\t')

driver = webdriver.Chrome() #打开一个浏览器
driver.get('https://i.qq.com/') # 访问页面
time.sleep(2) #等待加载数据

driver.switch_to.frame('login_frame') #切换到iframe
login = driver.find_element_by_id('switcher_plogin') #账号密码登录位置
login.click() #模拟点击

username = driver.find_element_by_id('u') #账号输入框
username.send_keys(account) #模拟输入
pwd = driver.find_element_by_id('p') #密码输入框
pwd.send_keys(password) #模拟点击

button = driver.find_element_by_id('login_button') #登录按钮位置
button.click() #模拟点击

time.sleep(10) #等候几秒,看看效果
driver.close() #关闭浏览器

'''
#给第一条说说点赞
time.sleep(2)
like = driver.find_element_by_css_selector('a.item.qz_like_btn_v3')
like.click()
'''

4、总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值