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

本攻略将介绍如何使用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日

相关文章

  • Python3 JSON 数据解析及日期和时间小结

    下面是Python3 JSON数据解析及日期和时间小结的完整攻略。 Python3 JSON数据解析 什么是JSON JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript语言标准(ECMA-262第3版,1999年12月)的一个子集。 Python3…

    python 2023年5月14日
    00
  • python对Excel的读取的示例代码

    下面是Python读取Excel的完整实例教程: 1. 安装依赖库 在Python中读取Excel文件需要使用到openpyxl库,如果还没有安装,可以使用以下命令进行安装: pip install openpyxl 2. 读取Excel文件 在Python中读取Excel文件可以使用openpyxl库中的load_workbook()方法,示例代码如下: …

    python 2023年5月13日
    00
  • Python接口传输url与flask数据详解

    在Python中,我们可以使用接口传输URL和Flask框架进行数据传输。本文将介绍如何使用接口传输URL和Flask框架进行数据传输,并提供两个示例。 1. 接口传输URL 接口传输URL是一种常见的数据传输方式,它可以将URL作为参数传递给接口。以下是一个示例,演示如何使用接口传输URL: import requests url = ‘http://ex…

    python 2023年5月15日
    00
  • 使用Python横向合并excel文件的实例

    当我们需要整合多个excel文件时,可能需要将它们合并成一个文件。本篇教程将介绍如何使用Python横向合并多个excel文件的实例。 步骤 1:安装所需的模块 在开始之前,需要确保安装了pandas、openpyxl和xlrd模块。可以使用以下命令进行安装: pip install pandas openpyxl xlrd 步骤 2:读入多个Excel文件…

    python 2023年5月14日
    00
  • Python3.0 实现决策树算法的流程

    以下是关于“Python3.0实现决策树算法的流程”的完整攻略: 简介 决策树是一种常见的分类和回归算法,它可以用于处理离散和连续的数据。在本攻略中,我们将介绍如何使用Python3.0实现决策树算法,包括决策树的基本原理、决策树的实现方法、决策树的优化等。 决策树的基本原理 决策树的基本原理是通过对数据进行分割,将数据分成多个子集,每个子集对应一个决策节点…

    python 2023年5月14日
    00
  • 安卓手机图案解锁怎么破解有哪些可行的方法

    安卓手机图案解锁是一种常见的安全功能,但是如果忘记了图案或者想要破解别人的图案,就需要了解一些可行的方法。下面介绍两种常见的图案解锁破解方法及其操作步骤。 方法一:使用调试模式破解图案解锁 首先需要连接一台电脑,并在手机开启 USB 调试模式。 在电脑上打开命令提示符或终端,并输入以下命令: adb shell cd /data/data/com.andro…

    python 2023年6月3日
    00
  • python实现在pickling的时候压缩的方法

    当我们在将Python对象进行序列化保存成文件或进行网络传递时,可以使用pickle模块来进行序列化,它能够将Python对象转化为字节流,然后再将字节流反序列化为Python对象。pickle模块能够序列化的对象类型非常丰富,包括但不限于Python内置的数据类型、用户自定义类、函数等等。在使用pickle模块进行序列化时,我们可以选择是否压缩序列化后的字…

    python 2023年6月2日
    00
  • 有没有办法指定在 python 2.7 的 unicode 编码中使用哪种 Unicode 格式?

    【问题标题】:Is there a way to specify which Unicode format is used in unicode encoding in python 2.7?有没有办法指定在 python 2.7 的 unicode 编码中使用哪种 Unicode 格式? 【发布时间】:2023-04-02 10:39:01 【问题描述】:…

    Python开发 2023年4月8日
    00
合作推广
合作推广
分享本页
返回顶部