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

作者:chen0495 时间:2023-08-02 05:57:13 

项目地址:

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')

来源:https://github.com/chen0495/pythonCrawlerForJSU

标签:python,爬虫,吉首大学
0
投稿

猜你喜欢

  • 黑科技 Python脚本帮你找出微信上删除你好友的人

    2021-09-04 04:07:08
  • Python中np.linalg.norm()用法实例总结

    2021-01-08 03:36:35
  • MySQL慢查询之开启慢查询

    2024-01-23 16:16:03
  • Python tkinter实现桌面软件流程详解

    2022-03-26 09:51:32
  • SQL Server中查询结果超出了查询时间范围解决方法

    2024-01-18 04:05:54
  • Webots下载安装 + Pycharm联调使用教程

    2023-02-20 23:35:43
  • Pandas的AB BA类型数据框去重复

    2022-09-26 07:48:16
  • 解决golang 反射interface{}做零值判断的一个重大坑

    2024-05-21 10:24:27
  • Python的iOS自动化打包实例代码

    2022-04-18 01:15:19
  • Python实现Appium端口检测与释放的实现

    2023-03-08 08:34:23
  • webstorm中配置Eslint的两种方式及差异比较详解

    2024-04-17 10:38:22
  • python获取Linux下文件版本信息、公司名和产品名的方法

    2022-01-31 20:46:20
  • 基于Python socket实现简易网络聊天室

    2021-10-19 09:10:30
  • Python基础之操作MySQL数据库

    2024-01-23 01:50:14
  • 聊聊Python中关于a=[[]]*3的反思

    2021-09-08 05:12:46
  • JS实现非首屏图片延迟加载的示例

    2024-04-23 09:27:49
  • 你是一个职业的页面重构工作者吗?

    2008-09-29 12:07:00
  • Python学习之书写格式及变量命名

    2023-08-23 14:53:08
  • python3.4中清屏的处理方法

    2023-11-14 04:09:21
  • Python3.9最新版下载与安装图文教程详解(Windows系统为例)

    2023-12-13 20:26:51
  • asp之家 网络编程 m.aspxhome.com