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)

相关推荐