本文章仅介绍如何通过python实现自动化登陆网页功能,
欢迎访问公众号:通信行业搬砖工
一、安装selenium
Selenium是一个WEB自动化测试工具,它运行时会直接实例化出一个浏览器,完全模拟用户的操作,比如点击链接、输入表单,点击按钮提交等。所以我们使用它可以很方便的来登录网站和QQ空间。
pip install selenium
二、安装浏览器驱动Chromedriver
一开始测试报错,并且Chrome浏览器提示:请停用以开发者模式运行的扩展程序,网址输入框中只显示:data;
,如下图:
这个问题是由于因为浏览器驱动Chromedriver和Chrome的版本不兼容导致无法通过driver在浏览器输入网址而出现的,解决的办法很简单:查看你Chrome浏览器的版本(帮助 -> 关于Google Chrome(G)),下载对应版本的浏览器驱动就可以了。
三、使用selenium模拟登陆网易163
该部分通过Python Selenium库函数,调用Google Chrome 浏览器的webdriver 驱动实现,通过selenium库函数的操作API,模拟人工单步调浏览器。
代码单步运行注释如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
driver=webdriver.Chrome()
destURL = "https://mail.163.com"
driver.get(destURL )
此时出现如下界面:
此时,我们需要模拟点击密码登陆,出现对话框,输入用户名和密码来登录账号:
driver.find_element_by_id("lbNormal").click()
login_frame=driver.find_element_by_xpath("//iframe[starts-with(@id, 'x-URS-iframe')]")
driver.switch_to.frame(login_frame)
driver.find_element_by_name("email").send_keys("username")
driver.find_element_by_name("password").send_keys("password")
driver.find_element_by_id("dologin").click()
driver.switch_to.default_content()
#调用webdrive的quit功能关闭浏览器
driver.quit()
所以,可以通过上面例子,更换一下DestURL的地址,来模拟打开网站。
DestURL = "https://www.xuexi.cn"
browser.get(DestURL)
Notice:
本例子仅仅作为学习Python自动登陆程序使用,涉及如何通过网易易盾验证,不在本篇文章中解决,请勿用于其他用途。