python + selenium 实现自动登录网站

PS:写了2个小时,忘记保存了,无奈只得重写。心痛!

最近玩合天,必须每天登录才有合氏币拿,每次输入用户名和密码太麻烦了;想破解某同学的QQ相册,必须先达到登录状态才行啊。

环境:win7 64位 + python2.7 + selenium

一、安装selenium

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

pip install selenium

二、安装浏览器驱动Chromedriver

一开始测试报错,并且Chrome浏览器提示:请停用以开发者模式运行的扩展程序,网址输入框中只显示:data;,如下图:

这个问题是由于因为浏览器驱动Chromedriver和Chrome的版本不兼容导致无法通过driver在浏览器输入网址而出现的,解决的办法很简单:查看你Chrome浏览器的版本(帮助 -> 关于Google Chrome(G)),下载对应版本的浏览器驱动就可以了。

下载对应Chromedriver后放到python目录、或者system32下,就可以了。

附表:最新的Chromedriver与Chrome的版本对应关系表:

chromedriver版本 支持的Chrome版本
v2.35 v62-64
v2.34 v61-63
v2.33 v60-62
v2.32 v59-61
v2.31 v58-60
v2.30 v58-60
v2.29 v56-58
v2.28 v55-57
v2.27 v54-56
v2.26 v53-55
v2.25 v53-55
v2.24 v52-54
v2.23 v51-53
v2.22 v49-52
v2.21 v46-50
v2.20 v43-48
v2.19 v43-47
v2.18 v43-46
v2.17 v42-43
v2.13 v42-45
v2.15 v40-43
v2.14 v39-42
v2.13 v38-41
v2.12 v36-40
v2.11 v36-40
v2.10 v33-36
v2.9 v31-34
v2.8 v30-33
v2.7 v30-33
v2.6 v29-32
v2.5 v29-32
v2.4 v29-32

不同版本的Chromedriver都可以通过这里链接下载:

http://chromedriver.storage.googleapis.com/index.html

我下载的是chromedriver win32.zip

三、模拟登录QQ空间

不废话,直接上码。

#-*- coding:utf8 -*-

# 导入selenium2中的webdriver库
from selenium import webdriver

# 实例化出一个Firefox浏览器 
driver = webdriver.Chrome()

# 设置浏览器窗口的位置和大小
driver.set_window_position(20,40)
driver.set_window_size(1100,700)

# 打开一个页面(QQ空间登录页)
driver.get("http://qzone.qq.com")

# 登录表单在页面的框架中中,所以要切换到该框架
driver.switch_to_frame('login_frame')

# 通过使用选择器选择到表单元素进行模拟输入和点击按钮提交
driver.find_element_by_id('switcher_plogin').click()
driver.find_element_by_id('u').clear()
driver.find_element_by_id('u').send_keys('1650277972')
driver.find_element_by_id('p').clear()
driver.find_element_by_id('p').send_keys('*********')#password
driver.find_element_by_id('login_button').click()

# do something

# 退出窗口
#driver.quit()

 录了一个gif,但是这个 gif 好慢啊,应该是录制软件的问题。

要休息一会,合天那个休息好了再试试。

THE END

猜你喜欢

转载自www.cnblogs.com/liuxingbusi/p/9278290.html