需求
今天下午开组会,当半主动的向老师要求研一期间参与项目,要老师以严厉的方式对待后~
老师让把研究生选课信息发给他看,选择跟我们方向比较相关的选修课
,在获取足够的选修学分同时也能对未来的项目有些许帮助
于是便有了本篇blog
,下面简单带大家看一下~
爬虫分析
1、无论是以何种形式存放数据,我们需要做的第一步便是获取网站的数据,先让我们看下浏览器页面(快捷键Fn
+ F12
)
2、找到存放数据的文件
3、查看请求头等信息
4、既然通过上面分析发现数据是json格式,考虑用csv
文件进行存储,因为可以按照单元格的值进行筛选
爬虫源码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| import requests import json import csv
url = 'http://125.34.90.207:8090/prod-api/psmp/lession/trainScheme/requirement?trainSchemeId=82' headers = { 'cookie': '填写你的cookie', 'authorization': '填写你的authorization', 'host': '125.34.90.207:8090', 'referer': 'http://125.34.90.207:8090/student/plan/selectPlan', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 Edg/128.0.0.0' } response = requests.get(url, headers=headers) response.encoding = response.apparent_encoding data = json.loads(response.text) lessons = data['data']['lessionList']
file = open('研1选课信息.csv', 'w', encoding='utf-8-sig', newline='') csv_writer = csv.writer(file) csv_writer.writerow(["课程编号", "课程分类", "课程性质", "课程名称", "学时", "学分"])
for lesson in lessons: lessionNo = lesson['lessionNo'].strip() lessionTypeName = lesson['lessionTypeName'].strip() xingZhiName = lesson['xingZhiName'].strip() lessionName = lesson['lessionName'].strip() period = str(lesson['period']).strip() credit = str(lesson['credit']).strip()
csv_writer.writerow([lessionNo, lessionTypeName, xingZhiName, lessionName, period, credit])
|
结果便会在本地同级目录下生成研1选课信息.csv
文件,打开页面一观:
其他
发现即使用github的CDN加速,但是有些图片加载仍然很慢~
想找一个能将图片url进行压缩显示新图片的功能网站
如果能找到,下篇博文应该会写这个了~