Python模拟登陆教务系统爬取成绩信息+绘制成绩分布图+导入MySQL

本文详细介绍了如何使用Python的selenium库模拟登录学校的教务系统,抓取成绩信息,包括学期、课程名、总成绩等,并将数据标准化。接着,利用matplotlib绘制成绩分布折线图,最后将数据存储到MySQL数据库中。整个过程涵盖了网页自动化、数据爬取、数据处理和数据库操作等技术。

这是一篇介绍如何通过Python实现模拟登陆学校教务系统并爬取成绩相关信息(学期,课程名,总成绩,课程性质,学分)然后绘制成绩分布折线图最后导入MySQL数据库中的文章
为了利用充分利用selenium的功能和成功爬取数据,需要有前置的html、css、简单爬虫的相关知识

说明:我学校的成绩查询页面是通过加载js框架进而动态实时加载显示表格及数据的,如果仅仅是用一般的爬虫方法直接爬取页面信息,是不能成功的,因为那样是直接获取网页源码,其中并没有成绩数据。当然,采用某些爬虫方法肯定也能实现爬取js动态网页,但是我为了简单起见,直接用了selenium模拟登陆系统然后爬取信息。

一、导入主要模块

from bs4 import BeautifulSoup 
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.keys import Keys
import matplotlib.pyplot as plt
import time
import pymysql

二、利用selenium模拟登陆教务系统

1.首先给出系统登陆页面url和成绩查询页面url(方便登陆成功后直接跳转,省去了鼠标点击相关链接的操作)

# 给出所需的url
url_login_page = ("你学校的教务系统登录页面url")
url_cjcx=("成绩查询页面url")

2.打开系统登录页面

# 启动Chorme驱动,开始模拟(不能用静默模式启动)
option = webdriver.ChromeOptions()
# 不加载图片,提高访问速度
option.add_argument('blink-settings=imagesEnabled=false')
driver = webdriver.Chrome(chrome_options=option)
driver.maximize_window()
print("正在访问......")
driver.get(url_login_page)

3.模拟输入账号密码并点击登陆按钮
这里需要你自己用F12去查看自己学校系统登陆页面的网页元素然后找到账号密码输入框、登录按钮的元素名称(这里我通过find_element_by_id找到了所需的输入框及按钮)
在这里插入图片描述

# 自动输入账号密码
driver.find_element_by_id("username").send_keys("你的学号")
driver.find_element_by_id("password").send_keys("你的密码")

# 找到并点击登录按钮,实现登录
login_button = driver.find_element_by_id("login_submit")
actions = ActionChains(driver)
actions.key_down(Keys.CONTROL).click(login_button).key_up(Keys.CONTROL).perform()

三、爬取成绩信息

1.在新页面打开成绩查询页面

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Polaris_T

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值