前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python笔记之自动登录实现

Python笔记之自动登录实现

作者头像
通信行业搬砖工
修改2023-02-28 09:34:34
9780
修改2023-02-28 09:34:34
举报
文章被收录于专栏:网络虚拟化

本文章仅介绍如何通过python实现自动化登陆网页功能,

欢迎访问公众号:通信行业搬砖工

一、安装selenium

Selenium是一个WEB自动化测试工具,它运行时会直接实例化出一个浏览器,完全模拟用户的操作,比如点击链接、输入表单,点击按钮提交等。所以我们使用它可以很方便的来登录网站和QQ空间。

代码语言:javascript
复制
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自动登陆程序使用,涉及如何通过网易易盾验证,不在本篇文章中解决,请勿用于其他用途。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 通信行业搬砖工 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档