Python爬虫练习(三)
文章目录
前言
一、隐藏cmd黑框
二、代码
1、引入库
2、登录
3、选择日期
4、选择人员
5、提交体温
6、主程序
总结
前言
使用selenium库模拟鼠标点击和键盘输入完成体温上报。
一、隐藏cmd黑框
打开phython所在文件夹\Lib\site-packages\selenium\webdriver\common\service.py。
在start函数中的subprocess.Popen中添加参数creationflags = 134217728
二、代码
1、引入库
from selenium import webdriverimport 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目录下。
需要填写验证码时可以先最大化,停留一段时间后最小化,手动输入。
体温上报的网页不同,需要根据实际情况修改代码。
赞 (0)