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日

相关文章

  • 将pandas.dataframe的数据写入到文件中的方法

    当我们使用pandas进行数据处理时,通常需要将处理后的数据保存到文件中,以便后续的使用或分享。在pandas中,我们可以使用to_csv()方法将DataFrame写入到CSV文件中,也可以使用to_excel()方法将DataFrame写入到Excel文件中。下面是详细讲解“将pandas.dataframe的数据写入到文件中的方法”的完整攻略: 一、将…

    python 2023年6月3日
    00
  • Python TCP通信客户端服务端代码实例

    首先,我们需要了解什么是TCP通信。TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。它在互联网中被广泛使用,例如浏览网页、下载文件等。TCP通过三次握手建立连接,在数据传输过程中会保证数据的可靠传输,也能够保证数据的顺序正确。 在Python中,通过socket模块可以实现TCP通信。…

    python 2023年6月2日
    00
  • python中Scrapy shell的使用

    Scrapy是一个Python爬虫框架,可以帮助我们快速、高效地爬取网站数据。Scrapy shell是Scrapy框架提供的一个交互式命令行工具,可以帮助我们快速测试和调试爬虫。本文将详细讲解如何使用Scrapy shell,包括如何启动Scrapy shell、如何使用Scrapy shell测试XPath表达式和CSS选择器、如何使用Scrapy sh…

    python 2023年5月15日
    00
  • Python单体模式的几种常见实现方法详解

    Python单例模式的几种常见实现方法详解 在 Python 编程中,单例模式是一种常用的设计模式。这种模式的主要目的是确保在一个进程中只有一个特定类的实例,且该实例易于全局访问。 本攻略将详细介绍 Python 单例模式的几种常见实现方法,包括: 基于模块实现单例模式 基于元类实现单例模式 基于装饰器实现单例模式 基于__new__方法实现单例模式 下面将…

    python 2023年5月19日
    00
  • Python OpenCV读取中文路径图像的方法

    Python OpenCV是一款非常强大的计算机视觉库,可以用于读取、处理和分析图像。当我们处理图像时,常常会遇到图像路径中包含中文的情况。本文将详细介绍如何在Python OpenCV中读取中文路径图像。 方法一:直接使用中文路径 一般情况下,我们在Python OpenCV中读取图像时会使用cv2.imread函数,这个函数需要传入图像的路径。虽然说中文…

    python 2023年5月18日
    00
  • python集合比较(交集,并集,差集)方法详解

    Python集合比较(交集、并集、差集)方法详解 什么是Python集合 Python集合是一种无序不重复的数据类型,它的元素以键(key)的方式存储,没有重复的元素。Python集合元素的值可以是任何可哈希(hashable)的对象,同一个集合内的元素数据类型可以不一致。 Python集合的方法 Python集合有一些方法可以进行元素的操作,这些方法包括:…

    python 2023年5月13日
    00
  • python实现网络五子棋

    首先,我们需要了解五子棋游戏的规则和基本概念,然后了解网络编程的基本知识,最后才能实现python实现网络五子棋。下面是实现的步骤: 1.规则介绍 五子棋是一种两个人玩的游戏,每个人轮流在棋盘上放置棋子,先将五个棋子连成一条线的人获胜。游戏中的基本概念包括:* 棋盘* 棋子* 玩家* 落子 2.网络编程介绍 网络编程是指在不同计算机之间进行通信的编程,常常用…

    python 2023年5月19日
    00
  • Python基础学习之奇异的GUI对话框

    下面是关于“Python基础学习之奇异的GUI对话框”的完整攻略: 1. GUI对话框的概述 GUI对话框是一种常见的交互方式,用于向用户提示信息或者接收用户输入内容。在Python的GUI编程中,提供了多种不同类型的对话框,包括消息框、文件对话框、颜色选择对话框等。Python的GUI编程主要使用Tkinter库,其中也包含了对话框的实现。 2. Tkin…

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