大致介绍
上线性代数与矩阵论B的时候加了老师微信,浅问了一个问题,然后老师就认为我是一个勤奋努力的孩子,教师节的时候顺手发了个祝福,然后老师就让我当课代表收发作业了。
好多年没当课代表了,尤其是现在几乎没多少认识的人,有点诚惶诚恐,于是想着提前把班级名单爬下来,然后收作业的时候可以给人打勾,到时候给老师发过去。
想法还好,下午就要第一次收作业了,祝我好运!
爬虫代码
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 32 33 34 35 36 37 38 39 40
| import requests import parsel import csv
def Spider(): url = "http://yjsglxt.cumtb.edu.cn/Gstudent/Course/ClassStudent.aspx?EID=boJN9rxzJT9s-R0vsK2M7ZrxGKNuWLTFwKWQAx!NdLv9WtXpfH1vCg%3d%3d&UID=" headers = { 'cookie': 'LoginType=1; DropDownListWeeks=1; ASP.NET_SessionId=iqekgu3in4kqraxef5wuddpj; DropDownListXqu=; DropDownListYx_xsbh=', 'host': 'yjsglxt.cumtb.edu.cn', 'origin': 'http://yjsglxt.cumtb.edu.cn', 'referer': 'http://yjsglxt.cumtb.edu.cn/Gstudent/Course/ClassStudent.aspx?EID=mdhL4OSciaEFztuyJzfZqXKcPFvgtDX84VosnP321!aj0H0VBxK6EA==&UID=MSJ2410100010', '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 select = parsel.Selector(response.text) results = select.xpath('//table[@id="ctl00_contentParent_dgData"]/tr').getall() f = open("线性代数班级.csv", mode="a+", newline="", encoding="utf-8-sig") csv_writer = csv.writer(f) for result in results[1:-1]: sel = parsel.Selector(result) id = sel.xpath("//td/text()")[0].get() name = sel.xpath("//td/text()")[1].get() sex = sel.xpath("//td/text()")[2].extract() grade = sel.xpath("//td/text()")[3].extract() college = sel.xpath("//td/text()")[4].extract() major = sel.xpath("//td/text()")[-1].extract()
csv_writer.writerow([id, name, sex, grade, college, major])
if __name__ == '__main__': f = open("线性代数班级.csv", mode="a+", newline="", encoding="utf-8-sig") csv_writer = csv.writer(f) csv_writer.writerow(["学号", "姓名", "性别", "年级", "所属院系", "专业名称"]) Spider()
|
这个页面是个post
请求,且比较奇怪的一点在于此post
在原网页上并不能通过page
等参数来跳转的下一页,爬虫的时候发现的规律是需要自己手动点,然后爬虫,所以为了csv
文件的美观,我是把main
里面的文件操作先注释,直到最后一次再取消注释,最后标签其实会写到csv
文件的最后一行,需要手动剪切插入到第一行。
注意:如果自己需要修改的话,确保登录状态,然后自己按照请求头等信息修改!
效果一览
最近工作
最近导师那边的科创中心经常安排杂活,个人的学习受到了影响,导师长时间不回复的行为有时候会让我很内耗,昨晚就想来想去失眠到1点多,仔细想了想,放弃导师的指导,自己按照培养计划研一完成毕业要求,后面自己学点东西。不抱期待,不受伤害!
昨天上了个集团专家的科技写作课,昨晚整理公司所属非核心期刊的时候发现了一篇论文给了灵感,最近今天准备读下10
篇左右相关的论文并完成前置算法的学习及代码的编写,希望这个月能完成论文的初稿!