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


Posted in Python onJune 02, 2021

项目地址:

https://github.com/chen0495/pythonCrawlerForJSU

环境

  • python 3.5即以上
  • request、BeautifulSoup、numpy、pandas.
  • 安装BeautifulSoup使用命令pip install BeautifulSoup4

配置及使用

登陆学校成绩单查询网站,修改cookie.

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

按F12后按Ctrl+R刷新一下,获取cookie的方法见下图:

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

修改爬虫url为自己的成绩单网址.

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

运行src/main.py文件即可在/result下得到csv文件.

结果展示

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

完整代码

# -*- coding: utf-8 -*-
# @Time    : 5/29/2021 2:13 PM
# @Author  : Chen0495
# @Email   : 1346565673@qq.com|chenweiin612@gmail.com
# @File    : main.py
# @Software: PyCharm

import requests as rq
from bs4 import BeautifulSoup as BS
import numpy as np
import pandas as pd

rq.adapters.DEFAULT_RETRIES = 5
s = rq.session()
s.keep_alive = False # 关闭多余连接

header = { # 请更改cookie
    'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4501.0 Safari/537.36 Edg/92.0.891.1',
    'cookie' : 'wengine_vpn_ticketwebvpn_jsu_edu_cn=xxxxxxxxxx; show_vpn=1; refresh=1'
}

# 请更改url
r = rq.get('https://webvpn.jsu.edu.cn/https/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/jsxsd/kscj/cjcx_list', headers = header, verify=False)

soup = BS(r.text,'html.parser')

head = []
for th in soup.find_all("th"):
    head.append(th.text)
while '' in head:
    head.remove('')
head.remove('序号')
context = np.array(head)


x = []
flag = 0
for td in soup.find_all("td"):
    if flag!=0 and flag%11!=1:
        x.append(td.text)
    if flag%11==0 and flag!=0:
        context = np.row_stack((context,np.array(x)))
        x.clear()
    flag+=1

context = np.delete(context,0,axis=0)
data = pd.DataFrame(context,columns=head)
print(data)

# 生成文件,亲更改文件名
data.to_csv('../result/result.csv',encoding='utf-8-sig')

以上就是python 爬取吉首大学成绩单的详细内容,更多关于python 爬取成绩单的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python实现抓取网页并且解析的实例
Sep 20 Python
Python深入06——python的内存管理详解
Dec 07 Python
在python3环境下的Django中使用MySQL数据库的实例
Aug 29 Python
分享一下如何编写高效且优雅的 Python 代码
Sep 07 Python
Python 快速实现CLI 应用程序的脚手架
Dec 05 Python
ERLANG和PYTHON互通实现过程详解
Jul 05 Python
Python编写带选项的命令行程序方法
Aug 13 Python
在tensorflow下利用plt画论文中loss,acc等曲线图实例
Jun 15 Python
Python 的 f-string 可以连接字符串与数字的原因解析
Feb 20 Python
如何使用PyCharm及常用配置详解
Jun 03 Python
Python数据可视化之用Matplotlib绘制常用图形
Jun 03 Python
只用Python就可以制作的简单词云
Jun 07 Python
python 批量压缩图片的脚本
Jun 02 #Python
python操作xlsx格式文件并读取
关于Numpy之repeat、tile的用法总结
Jun 02 #Python
Matlab如何实现矩阵复制扩充
Jun 02 #Python
给numpy.array增加维度的超简单方法
Jun 02 #Python
pytorch model.cuda()花费时间很长的解决
如何理解及使用Python闭包
You might like
PHP5+UTF8多文件上传类
2008/10/17 PHP
php空间不支持socket但支持curl时recaptcha的用法
2011/11/07 PHP
discuz免激活同步登入代码修改方法(discuz同步登录)
2013/12/24 PHP
php获取文章上一页与下一页的方法
2014/12/01 PHP
Google Suggest ;-) 基于js的动态下拉菜单
2006/10/11 Javascript
JavaScript中的new的使用方法与注意事项
2007/05/16 Javascript
JS判断不同分辨率调用不同的CSS样式文件实现思路及测试代码
2013/01/23 Javascript
自动刷新网页,自动刷新当前页面,JS调用
2013/06/24 Javascript
js控制frameSet示例
2013/09/10 Javascript
jQuery对象的selector属性用法实例
2014/12/27 Javascript
jQuery满意度星级评价插件特效代码分享
2015/08/19 Javascript
js仿QQ中对联系人向左滑动、滑出删除按钮的操作
2016/04/07 Javascript
批量下载对路网图片并生成html的实现方法
2016/06/07 Javascript
AngularJS表格详解及示例代码
2016/08/17 Javascript
Angular2开发——组件规划篇
2017/03/28 Javascript
jQuery正则验证注册页面经典实例
2017/06/10 jQuery
关于javascript sort()排序你可能忽略的一点理解
2017/07/18 Javascript
Nuxt配合Node在实际生产中的应用详解
2018/08/07 Javascript
JavaScript实现数字前补“0”的五种方法示例
2019/01/03 Javascript
JavaScript中this用法学习笔记
2019/03/17 Javascript
Vue2.0实现组件之间数据交互和通信操作示例
2019/05/16 Javascript
详解JavaScript 作用域
2020/07/14 Javascript
[02:30]联想杯DOTA2完美世界全国高校联赛—北京站现场
2015/11/16 DOTA
Python异常学习笔记
2015/02/03 Python
python 全文检索引擎详解
2017/04/25 Python
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
2017/06/12 Python
对python中Librosa的mfcc步骤详解
2019/01/09 Python
python实现windows倒计时锁屏功能
2019/07/30 Python
英国在线药房和在线医生:LloydsPharmacy
2019/10/21 全球购物
数百万免费的图形资源:Freepik
2020/09/21 全球购物
北京华建集团SQL面试题
2014/06/03 面试题
党建目标管理责任书
2014/07/25 职场文书
三八妇女节超市活动方案
2014/08/18 职场文书
2015年仓库管理员工作总结
2015/04/21 职场文书
低端且暴利的线上线下创业项目分享
2019/09/03 职场文书
SQL Server作业失败:无法确定所有者是否有服务器访问权限的解决方法
2021/06/30 SQL Server