用selenium制作爬虫爬取教务课程信息

本文介绍如何利用selenium驱动Chrome浏览器,配合pytesseract识别验证码,爬取教务系统的课程信息,并将数据存储到MongoDB中。通过定位网页元素,模拟登录,切换frame,获取选课信息,最终实现教务课程信息自动化抓取。
摘要由CSDN通过智能技术生成

https://apriljia.com/2018/09/26/%E7%94%A8selenium%E5%88%B6%E4%BD%9C%E7%88%AC%E8%99%AB%E7%88%AC%E5%8F%96%E6%95%99%E5%8A%A1%E8%AF%BE%E7%A8%8B%E4%BF%A1%E6%81%AF/

https://github.com/plutojia/Crawler-with-checkcode-recognition-

前段时间在选课,而我们的教务系统又十分蛋疼。先是在选课时不停崩溃,进不去,选课结束要打印选课单时又因为它自己系统太老而不支持64位浏览器打印课表。。。没有办法我就写了一个爬取教务课程信息并将其存储在MongoDB中的程序,这个程序稍微改改就可以变成抢课脚本了。内容有:

  • 使用selenium驱动chrome浏览器
  • 用pytesseract识别验证码
  • MongoDB存储

首先选课系统长这个样子:

需要做的是通过脚本输入用户名和密码,并识别验证码登陆教务系统,跳转到选课页面,获取选课信息,最后将信息存储于MongoDB中。

打开开发者工具,定位登陆表单各元素:

依次获取元素填写相应字段,最后模拟点击登陆即可,代码如下:


def login():
    browser.get('http://gsmis.graduate.buaa.edu.cn/gsmis/main.do')
    browser.maximize_window()
    input_id=browser.find_element_by_xpath('//input[@name="id"]')
    input_password =browser.find_element_by_xpath('//input[@name="password"]')
    input_checkcode=browser.find_element_by_xpath('//input[@name="checkcode"]')
    img_checkcode=browser.find_element_by_xpath('//img[@src="/gsmis/Image.do"]')

    location = img_checkcode.location
    size = img_checkcode.size
    browser.save_screenshot('checkcode.png')
    checkcode=getCheckcode('checkcode.png',location,size)

    input_id.send_keys(data['id'])
    input_password.s
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值