文章目录
前言 使用selenium库模拟鼠标点击和键盘输入完成体温上报。 一、隐藏cmd黑框打开phython所在文件夹\Lib\site-packages\selenium\webdriver\common\service.py。 在start函数中的subprocess.Popen中添加参数creationflags = 134217728 二、代码 1、引入库from selenium import webdriver
import time 2、登录def login():
try:
global driver
driver.maximize_window() #最大化窗口,展示验证码
time.sleep(7) #等待
print("获取登录页面")
un=driver.find_element_by_id('un')
pd=driver.find_element_by_id('pd')
code=driver.find_element_by_id('code') #查找输入框
un.send_keys("学号")
pd.send_keys("密码")
driver.minimize_window() #最小化窗口,回到shell界面
code.send_keys(input('输入验证码:'))
driver.maximize_window()
submit=driver.find_element_by_id('index_login_btn')
submit.click() #点击
print('提交登录页面')
except Exception as e:
print('登录失败')
print(e) 3、选择日期def page1():
try:
global driver
time.sleep(7)
print("获取日期选择页面")
me=driver.find_element_by_name('fieldHidden1')
me.click()
submit=driver.find_element_by_class_name('command_button_content')
submit.click()
print("日期选择提交")
except Exception as e:
print("日期选择提交失败")
print(e) 4、选择人员def page2():
try:
global driver
time.sleep(7)
print("获取人员选择页面")
me=driver.find_element_by_name('fieldxz')
me.click()
submit=driver.find_element_by_class_name('command_button_content')
submit.click()
print("人员选择提交")
except Exception as e:
print("人员选择提交失败")
print(e) 5、提交体温def page3():
try:
global driver
time.sleep(7)
print("获取体温提交页面")
temp=driver.find_element_by_name('fieldXSZLB')
temp.send_keys('36.5')
submit=driver.find_element_by_css_selector('a[class="command_button_content"][id$="_1"]')
submit.click()
time.sleep(7)
sure=driver.find_elements_by_class_name('dialog_button')[0]
sure.click()
print("体温提交")
print("健康上报成功")
except Exception as e:
print("体温提交失败")
print(e) 6、主程序driver=webdriver.Chrome()
url='网址'
driver.get(url)
login()
page1()
page2()
page3()
print("程序结束")
time.sleep(7)
driver.close()
总结 selenium库可以模拟鼠标点击和键盘输入,调试方便,适用于爬取有登录界面的网页。 selenium库支持xpath,css等多种查找方式,操作方便。 使用selenium库需要先下载chrome浏览器,并下载相应版本的webdriver驱动器,复制到python的scripts目录下。 需要填写验证码时可以先最大化,停留一段时间后最小化,手动输入。 体温上报的网页不同,需要根据实际情况修改代码。
|