python 爬取吉首大学网站成绩单

yizhihongxing

本攻略将介绍如何使用Python爬虫爬取吉首大学教务系统中的成绩单。我们将使用requests库和BeautifulSoup库获取成绩单数据,并使用pandas库将数据保存到CSV文件中。我们将提供两个示例代码,分别用于获取单个学期和多个学期的成绩单数据。

安装所需库

在开始前,我们需要安装requests、BeautifulSoup和pandas库。我们可以使用命令在命令行中安装这些库:

pip install requests
pip install beautifulsoup4
pip install pandas

登录教务系统

我们需要先登录教务系统,获取cookie和表单数据。以下是一个示例代码,用于登录教务系统:

import requests
from bs4 import BeautifulSoup

login_url = 'http://jwgl.jsu.edu.cn/default2.aspx'
response = requests.get(login_url)
soup = BeautifulSoup(response.text, 'html.parser')
view_state = soup.find('input', {'name': '__VIEWSTATE'})['value']
view_state_generator = soup.find('input', {'name': '__VIEWSTATEGENERATOR'})['value']
event_validation = soup.find('input', {'name': '__EVENTVALIDATION'})['value']
login_data = {
    '__VIEWSTATE': view_state,
    '__VIEWSTATEGENERATOR': view_state_generator,
    '__EVENTVALIDATION': event_validation,
    'txtUserName': 'your_username',
    'TextBox2': 'your_password',
    'Button1': '',
}
response = requests.post(login_url, data=login_data)

在上面的代码中,我们使用requests库的get方法获取了登录页面的网页内容,并使用BeautifulSoup库解析了网页内容。我们使用find方法获取了表单数据,并使用字典将表单数据保存到login_data中。我们使用requests库的post方法提交了表单数据,以登录教务系统。

获取成绩单数据

我们将使用requests库和BeautifulSoup库获取成绩单数据。以下是一个示例代码,用于获取单个学期的成绩单数据:

import requests
from bs4 import BeautifulSoup
import pandas as pd

score_url = 'http://jwgl.jsu.edu.cn/xscj_gc.aspx?xh=your_student_id&xm=your_name&gnmkdm=N121605'
response = requests.get(score_url)
soup = BeautifulSoup(response.text, 'html.parser')
table = soup.find('table', {'class': 'datelist'})
rows = table.find_all('tr')
data = []
for row in rows[1:]:
    cols = row.find_all('td')
    cols = [col.text.strip() for col in cols]
    data.append(cols)
df = pd.DataFrame(data, columns=['课程名称', '课程性质', '学分', '成绩', '绩点', '考试时间', '课程代码', '课序号'])
df.to_csv('score.csv', index=False)

在上面的代码中,我们使用requests库的get方法获取了成绩单页面的网页内容,并使用BeautifulSoup库解析了网页内容。我们使用find方法获取了成绩单表格,并使用find_all方法获取了表格中的所有行。我们使用循环遍历了所有行,并使用find_all方法获取了每行中的所有列。我们使用列表和字典将数据保存到CSV文件中。

以下是另一个示例代码,用于获取多个学期的成绩单数据:

import requests
from bs4 import BeautifulSoup
import pandas as pd

score_urls = [
    'http://jwgl.jsu.edu.cn/xscj_gc.aspx?xh=your_student_id&xm=your_name&gnmkdm=N121605',
    'http://jwgl.jsu.edu.cn/xscj_gc.aspx?xh=your_student_id&xm=your_name&gnmkdm=N121605&ddbh=002',
    'http://jwgl.jsu.edu.cn/xscj_gc.aspx?xh=your_student_id&xm=your_name&gnmkdm=N121605&ddbh=003',
]
data = []
for score_url in score_urls:
    response = requests.get(score_url)
    soup = BeautifulSoup(response.text, 'html.parser')
    table = soup.find('table', {'class': 'datelist'})
    rows = table.find_all('tr')
    for row in rows[1:]:
        cols = row.find_all('td')
        cols = [col.text.strip() for col in cols]
        data.append(cols)
df = pd.DataFrame(data, columns=['课程名称', '课程性质', '学分', '成绩', '绩点', '考试时间', '课程代码', '课序号'])
df.to_csv('score.csv', index=False)

在上面的代码中,我们使用循环遍历了所有成绩单页面,并使用requests库的get方法获取了每个页面的网页内容,并使用BeautifulSoup库解析了网页内容。我们使用find方法获取了成绩单表格,并使用find_all方法获取了表格中的所有行。我们使用循环遍历了所有行,并使用find_all方法获取了每行中的所有列。我们使用列表和字典将数据保存到CSV文件中。

总结

本攻略介绍了如何使用Python爬虫爬取吉首大学教务系统中的成绩单。我们使用requests库和BeautifulSoup库获取成绩单数据,并使用pandas库将数据保存到CSV文件中。我们提供了两个示例代码,分别用于获取单个学期和多个学期的成绩单数据。这些技巧可以帮助我们更好地了解自己的成绩情况。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 爬取吉首大学网站成绩单 - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • python如何遍历指定路径下所有文件(按按照时间区间检索)

    要实现Python遍历指定路径下所有文件并按照时间区间检索,可以使用os模块和datetime模块。 具体步骤如下: 步骤一:导入模块 import os import datetime 步骤二:定义函数 def search_files(start_dir, days): for dirpath, dirnames, filenames in os.wal…

    python 2023年6月3日
    00
  • python字符串连接方法分析

    Python字符串连接方法分析 字符串连接在Python中非常常用,有很多方法可以实现字符串连接的功能。在本篇攻略中,我们将详细介绍Python中常用的字符串连接方法,并提供一些示例说明。 1. “+”操作符 使用“+”操作符可以将两个字符串连接成一个新字符串。该操作符可以同时连接两个字符串,也可以连接多个字符串。 示例代码如下: str1 = "…

    python 2023年6月7日
    00
  • Python Opencv实现图片切割处理

    下面是针对”Python Opencv实现图片切割处理”的完整攻略: 前言 图片切割处理是图像处理中的重要部分,而Python Opencv作为一种流行的图像处理工具,擅长这部分的实现。本攻略会详细讲解如何使用Python Opencv实现图片切割处理。 环境准备 在开始之前,需要安装并配置好Python和Opencv。推荐使用Python 3.x版本,并安…

    python 2023年5月18日
    00
  • python通过pillow识别动态验证码的示例代码

    当我们在使用Python模拟登录一些网站时,往往会遇到验证码的问题。如果验证码是静态的,比如数字和字母组成的验证码,我们可以直接使用tesseract或者第三方库来识别,但是如果验证码是动态的,比如不断变化的验证码,这就需要使用一些其他的方法来识别。这个时候,我们可以使用Python中的第三方库Pillow来对动态验证码进行识别。 Pillow原本是Pyth…

    python 2023年5月18日
    00
  • 跟老齐学Python之从if开始语句的征程

    跟老齐学Python是一种极具实用性的学习方式,它以实战案例为基础,帮助初学者逐步掌握Python语言。本文将从if开始语句的角度,介绍跟老齐学Python的完整攻略。 1. 跟老齐学Python的课程简介 跟老齐学Python是一种基于案例式教学,以实战案例为基础,帮助初学者逐步掌握Python语言的教学方法。在教学过程中,老齐会根据不同的应用场景,讲解P…

    python 2023年6月5日
    00
  • 使用自带的IDLE进行程序调试

    1.打开IDLE,在主菜单选择debug—debugger菜单项,将打开debug control对话框 2.在Python-shell窗口选择file-open菜单项,打开要调试的文件 3.添加断点,鼠标右击选择set-breakpoint菜单项,添加断点的行将以黄色底纹标记,删除断点,选择clear-breakpoint菜单项 4.按快捷键F5执行程…

    python 2023年4月20日
    00
  • Python开发之快速搭建自动回复微信公众号功能

    下面是Python开发之快速搭建自动回复微信公众号功能的完整攻略。 1. 准备工作 要快速搭建自动回复微信公众号功能,需要进行如下准备工作: 一台可访问公网的服务器,建议使用Linux系统; 一个已经注册并通过审核的微信公众号,可以在微信公众平台申请; Python环境,建议使用Python 3.x版本; 在微信公众平台中配置开发者模式,并获取开发者-tok…

    python 2023年6月5日
    00
  • 利用Python实现文件读取与输入以及数据存储与读取的常用命令

    文件读取和输入是Python编程中非常常见的操作。在处理大规模数据时,常常需要将数据存储在文件中,然后使用Python程序读取并进行相应的处理。以下是实现文件读取与输入以及数据存储与读取的常用命令及攻略。 读取文件 Python提供了多种方法读取文本文件,其中最常用的是open()函数。使用open()函数打开文件时需要两个参数,即文件名和打开文件的模式。 …

    python 2023年6月2日
    00
合作推广
合作推广
分享本页
返回顶部