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实现实时监控文件的方法
Aug 26 Python
Python中Django 后台自定义表单控件
Mar 28 Python
python实现折半查找和归并排序算法
Apr 14 Python
浅谈Django中的数据库模型类-models.py(一对一的关系)
May 30 Python
python实现逐个读取txt字符并修改
Dec 24 Python
PIL图像处理模块paste方法简单使用详解
Jul 17 Python
PyCharm 配置远程python解释器和在本地修改服务器代码
Jul 23 Python
python try except返回异常的信息字符串代码实例
Aug 15 Python
python爬取Ajax动态加载网页过程解析
Sep 05 Python
使用Python项目生成所有依赖包的清单方式
Jul 13 Python
python中random模块详解
Mar 01 Python
python代码实现备忘录案例讲解
Jul 26 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
PHP创建PowerPoint2007文档的方法
2015/12/10 PHP
PHP面向对象程序设计实例分析
2016/01/26 PHP
laravel框架实现去掉URL中index.php的方法
2019/10/12 PHP
Laravel 中使用简单的方法跟踪用户是否在线(推荐)
2019/10/30 PHP
php 多继承的几种常见实现方法示例
2019/11/18 PHP
JavaScript的面向对象(一)
2006/11/09 Javascript
使用ExtJS技术实现的拖动树结点
2010/08/05 Javascript
Dreamweaver jQuery智能提示插件,支持版本提示,支持1.6api
2011/07/31 Javascript
Jquery中的层次选择器与find()的区别示例介绍
2014/02/20 Javascript
为什么JS中eval处理JSON数据要加括号
2015/04/13 Javascript
Vue.js每天必学之构造器与生命周期
2016/09/05 Javascript
React实现双向绑定示例代码
2016/09/19 Javascript
解析js如何获取css样式
2016/12/11 Javascript
浅析 NodeJs 的几种文件路径
2017/06/07 NodeJs
基于node.js制作简单爬虫教程
2017/06/29 Javascript
bootstrap插件treeview实现全选父节点下所有子节点和反选功能
2017/07/21 Javascript
nodejs搭建本地服务器轻松解决跨域问题
2018/03/21 NodeJs
js实现鼠标点击页面弹出自定义文字效果
2019/12/24 Javascript
[01:28]2014DOTA2国际邀请赛中国区预选赛四大豪门直升机抵达会场
2014/05/24 DOTA
[45:25]完美世界DOTA2联赛循环赛 PXG vs IO 第一场 11.06
2020/11/09 DOTA
比较详细Python正则表达式操作指南(re使用)
2008/09/06 Python
python脚本设置系统时间的两种方法
2016/02/21 Python
python与php实现分割文件代码
2017/03/06 Python
Python编程实现生成特定范围内不重复多个随机数的2种方法
2017/04/14 Python
Python使用getpass库读取密码的示例
2017/10/10 Python
在Python程序员面试中被问的最多的10道题
2017/12/05 Python
解决pandas中读取中文名称的csv文件报错的问题
2018/07/04 Python
pygame游戏之旅 创建游戏窗口界面
2018/11/20 Python
详细整理python 字符串(str)与列表(list)以及数组(array)之间的转换方法
2019/08/30 Python
获取python运行输出的数据并解析存为dataFrame实例
2020/07/07 Python
python 基于opencv操作摄像头
2020/12/24 Python
加拿大百叶窗和窗帘定制网站:Blinds
2017/01/30 全球购物
采购员岗位职责
2013/11/15 职场文书
最新奶茶店创业计划书范文
2014/02/08 职场文书
销售队伍口号
2014/06/11 职场文书
医药公司开票员岗位职责
2015/04/15 职场文书