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中for循环的使用
Apr 14 Python
Python抓取手机号归属地信息示例代码
Nov 28 Python
使用Python如何测试InnoDB与MyISAM的读写性能
Sep 18 Python
python字典的遍历3种方法详解
Aug 10 Python
Tensorflow不支持AVX2指令集的解决方法
Feb 03 Python
用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)
May 17 Python
Python-openCV开运算实例
Jul 05 Python
五分钟带你搞懂python 迭代器与生成器
Aug 30 Python
Python抖音快手代码舞(字符舞)的实现方法
Feb 07 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
Feb 25 Python
PyQt5实现多张图片显示并滚动
Jun 11 Python
python实现会员信息管理系统(List)
Mar 18 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脚本[带参数]的方法
2010/01/22 PHP
smarty 缓存控制前的页面静态化原理
2013/03/15 PHP
php实现文件编码批量转换
2014/03/10 PHP
使用ltrace工具跟踪PHP库函数调用的方法
2016/04/25 PHP
php微信公众号开发之答题连闯三关
2018/10/20 PHP
thinkPHP+mysql+ajax实现的仿百度一下即时搜索效果详解
2019/07/15 PHP
php写入文件不覆盖的实例讲解
2019/09/17 PHP
javascript各种复制代码收集
2008/09/20 Javascript
javascript 处理事件绑定的一些兼容写法
2009/12/24 Javascript
Prototype源码浅析 String部分(四)之补充
2012/01/16 Javascript
一个简单的JS鼠标悬停特效具体方法
2013/06/17 Javascript
JQuery调用WebServices的方法和4个实例
2014/05/06 Javascript
JS平滑无缝滚动效果的实现代码
2016/05/06 Javascript
JS数组去掉重复数据只保留一条的实现代码
2016/08/11 Javascript
Javascript的动态增加类的实现方法
2016/10/20 Javascript
js实现日期显示的一些操作(实例讲解)
2017/07/27 Javascript
OpenLayers3实现测量功能
2020/09/25 Javascript
利用numpy实现一、二维数组的拼接简单代码示例
2017/12/15 Python
python 实现将字典dict、列表list中的中文正常显示方法
2018/07/06 Python
pandas 根据列的值选取所有行的示例
2018/11/07 Python
Django框架实现的简单分页功能示例
2018/12/04 Python
python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)
2019/04/18 Python
解决Django migrate不能发现app.models的表问题
2019/08/31 Python
详解Python3 pandas.merge用法
2019/09/05 Python
PyCharm取消波浪线、下划线和中划线的实现
2020/03/03 Python
解决jupyter notebook 前面书写后面内容消失的问题
2020/04/13 Python
德国最大的网上足球商店:11teamsports
2019/09/11 全球购物
效能监察建议书
2014/05/19 职场文书
低碳环保口号
2014/06/12 职场文书
高中学生会竞选演讲稿
2014/08/25 职场文书
2015年重阳节慰问信
2015/03/23 职场文书
面试通知短信
2015/04/20 职场文书
建党伟业观后感
2015/06/01 职场文书
会议新闻稿
2015/07/17 职场文书
2016年“5.12”护士节致辞
2015/07/31 职场文书
高二语文教学反思
2016/02/16 职场文书