Python实现网站自动登录---傻瓜教程

本文介绍使用谷歌浏览器chrome自动登录网页,

下载谷歌浏览器:https://www.google.cn/chrome/,找到对应电脑操作系统(我的是WIN7 64位)的版本下载并安装。

1.首先下载驱动chromedriver

查看谷歌浏览器版本如图,可以看到我的版本是73.0.3683.103

下载对应版本的chromedriver(下载地址:http://chromedriver.storage.googleapis.com/index.html

解压后,将chromedriver.exe分别放进chrome浏览器目录 和 Python根目录下,

chrome浏览器目录(如:C:\Program Files (x86)\Google\Chrome\Application)

Python根目录(如:D:\Python\Python37)

参考:https://blog.csdn.net/weixin_37185329/article/details/80493281

还可以采用修改函数调用来实现,参考:https://www.cnblogs.com/stin/p/7929601.html

2.编写基本程序如下,

import time
import os
from selenium import webdriver
#先安装pywin32,才能导入下面两个包
import win32api
import win32con
#导入处理alert所需要的包
from selenium.common.exceptions import NoAlertPresentException
import traceback

#环境配置
chromedriver = "C:\Program Files (x86)\Google\Chrome\Application"
os.environ["webdriver.ie.driver"] = chromedriver

driver=webdriver.Chrome() # 选择Chrome浏览器
driver.get('https://fnzz.aoyang.com/login') # 打开网站
driver.maximize_window() #最大化谷歌浏览器
#处理alert弹窗
try:
    alert1 = driver.switch_to.alert #switch_to.alert点击确认alert
except NoAlertPresentException as e:
    print("no alert")
    traceback.print_exc()
else:
    at_text1 = alert1.text
    print("at_text:" + at_text1)

time.sleep(1)

#driver.find_element_by_link_text('登录').click() # 点击“账户登录”

username = "18888888888" # 请替换成你的用户名
password = "123456" # 请替换成你的密码

driver.find_element_by_id('username').click() # 点击用户名输入框
driver.find_element_by_id('username').clear() #清空输入框
driver.find_element_by_id('username').send_keys(username) # 自动敲入用户名

driver.find_element_by_id('password').click() # 点击密码输入框
driver.find_element_by_id('password').clear() #清空输入框
driver.find_element_by_id('password').send_keys(password) # 自动敲入密码

#采用class定位登陆按钮
#driver.find_element_by_class_name('ant-btn').click() # 点击“登录”按钮
#采用xpath定位登陆按钮,
driver.find_element_by_xpath('//*[@id="root"]/div/div[3]/form/button').click() 

time.sleep(1)

#driver.find_element_by_id('signIn').click() # 点击“签到”

win32api.keybd_event(122,0,0,0)  #F11的键位码是122,按F11浏览器全屏
win32api.keybd_event(122,0,win32con.KEYEVENTF_KEYUP,0) #释放按键

#driver.close()

# 代码调用:
# python.exe JDSignup.py
# 可以将这行命令添加到Windows计划任务,每天运行,从而实现每日自动签到领取京豆。

在cmd命令行模式下,输入pip install pyinstaller安装pyinstaller模块。
在py程序所在文件夹,打开cmd,输入pyinstaller -F auto_chrome.py,打包为一个可运行程序。

 

3.调试知识点

一开始编写,driver.find_element_by_id('submit').click() ,实现点击登录功能失败,

原因是此标签没有定义id,只有type定义为submit

因此使用class定位方法,修改为,driver.find_element_by_class_name('ant-btn').click(),运行成功,

当然还可以采用XPath定位,即绝对路径定位,driver.find_element_by_xpath('//*[@id="root"]/div/div[3]/form/button').click()

chrome查看XPath方法

参考:https://jingyan.baidu.com/article/da1091fb71365f027949d658.html

找到对应元素,右键点击-->Copy-->Copy XPath,即可拿到XPath。

4.webdriver定位网页元素的8种方法

参考:https://www.cnblogs.com/minieye/p/5803640.html

5.Python模拟键盘输入的键值码

参考:https://blog.csdn.net/smallsmallmouse/article/details/78689675

https://blog.csdn.net/daxialeesuper/article/details/79470487

字母和数字键数字小键盘的键功能键其它键
键码键码键码键码
A65096F1112Backspace8
B66197F2113Tab9
C67298F3114Clear12
D68399F4115Enter13
E694100F5116Shift16
F705101F6117Control17
G716102F7118Alt18
H727103F8119CapsLock20
I738104F9120Esc27
J749105F10121Spacebar32
K75*106F11122PageUp33
L76+107F12123PageDown34
M77Enter108End35  
N78-109Home36  
O79.110LeftArrow37  
P80/111UpArrow38  
Q81RightArrow39    
R82DownArrow40    
S83Insert45    
T84Delete46    
U85Help47    
V86NumLock144    
W87      
X88      
Y89      
Z90      
048      
149      
250      
351      
452      
553      
654      
755      
856      
957     

 

 

另外还可以将程序添加到windows计划任务,让系统每日自动运行,

参考:https://blog.csdn.net/mooncrystal123/article/details/83586780

 

  • 71
    点赞
  • 419
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值