nobo 开发日记(二)

关于将爬虫命名为「nobo」

立命馆大学最近最爱提到的口号就是「Beyond Borders」,在不给学生放假的边缘试探
而网络服务方面,学校也不提供 API 接口给大家用,那我就做一个「No Borders」的爬虫。
然而名字很长,就缩短一点,就叫「nobo」吧!顺便还有「登る」的意思,挺好。

Manaba 课程列表获取

前天在回杭州的车上把 Manaba 的课程列表爬虫给写了出来。
这几天回国,天天吃吃喝喝的,也没做什么正事。
今天修修补补,应该是能够正确获取到信息了。

参考代码

大纲功能的开发

「立命館大学オンラインシラバス」是立命馆提供的大纲查询服务。
经过简单的抓包分析,发现和 manaba+R 的验证还是挺像的,且在认证过程中还少跳转了一次页面。
所以把 manaba+R 的登录模块拿过来,改动了下,1分钟就完成了大纲服务的模拟登录。
然而,这网页上的信息真的太多了,每个表下面还有 Notes 栏目,分析这个 html 结构并编写正则提取花了我整整 1 天时间。
最后出来的结构大概是下面这样的。(有很多元素还是列表和字典)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# Save as dictionary
self.syllabusList = {
"basic": basicInfo,
"time": courseTime,
"teacher": courseTeacher,
"credit": credit,
"outline": outline,
"objectives": objectives,
"precourse": precourse,
"schedule": scheduleList,
"recommendation": recommendation,
"grade_evluation": gradeEvaluation,
"advice": advice,
"text_books": textBooks,
"ref_books": refBooks,
"ref_pages": refPage,
"contact_methods": contactMethods,
"other_comments": otherComments,
}

参考代码

至此,爬虫的基本框架已经出来了,后续可能就是一些功能上的增补。

下次日记,将会分享基于 GAE 的免费 API 搭建流程。

0%