用selenium+webdriver爬取复旦图书馆信息记录
这个月我大姨夫来访, 絮絮叨叨搞的心情不佳, 需要一些快感. 通常获得快感的方式有两种: 毁灭和创造. 然而毁树容易栽树难, 但成为虐猫狂人薛定谔臣妾似乎也办不到. 所以我喜欢创造性地毁灭. 额, 其实我特别喜欢我旦的图书馆, 但是毁灭要从喜欢开始, 不然以后我如何毁灭这个世界呢?
我旦图书馆登录使用的是学号加密码的形式, 然而初始密码是十分简单的. 虽然系统很温馨地提示读者们修改密码, 然而并没有什么卵用, 很多很多童鞋没事还是不会改的, 甚至有些童鞋都不知道有这个登录功能. 很久以前我就注意到这个了, 这个虫子可以用来TK(TK也是有快感的), 也可以用来干坏事. 然而以前一直没有什么动力让我玩这件事, 直到我最近几个月玩了 python 爬虫才觉得貌似可以来一发.
图书馆登录采用的是 session 的, 登录界面需要点击登录后每次出现的网址都不一样, 所以我没有成功使用好那些基础的 urllib, urllib2,re 包, 大概是我作为信息安全技术学科一个外行技术太菜, 我相信是有这样的 solution 的, 但是对于这样的动态页面我还只会用 selenium 来实现批操作. selenium+webdriver 可以模拟用户在浏览器环境下的任意操作, 是一个十分有用的测试工具. 我曾经用过 selenium + chrome webdriver 读取了 google 学术 某些关键词的前100页的搜索结果, 很大程度上加快了我的查文献速度. 这深深地让我觉得 selenium 是个神器.
为了防止世界被破坏,为了守护世界和平,贯彻爱与真实的邪恶. 这里不给出工具的来源, 也不给出任何实际的代码. 请有变态兴趣的人自行 google. 有志之士只要模拟鼠标点击登录
然后模拟输入读者证号和弱口令密码即可, 读者证号嘛, 反正是大家的学号, 可以做一个遍历, 一个个登录过来, 总有不注意改密码的同学(诶, 貌似我自己的密码也没改, 嘛~一卡).
技术难点 仅仅在于 DOM 查找而已, 这在 selenium 下并没有什么难度. 所以连我这样的小白也能够做点什么. 接下来各位雷锋可以帮助同学们续借一下快过期的书籍, 预定下<计算机安全导论>, 或者发个邮件提醒下: "hello同学, 您借的***书已经三个月没还了, 图书管理员很生气"(好像是在说我自己...)
当然也可以像我一样TK大家的信息(学号和姓名, 系别, 历史借阅), 时间有限, 我就爬到了 2100 位同学的借阅信息, 其中不乏我的熟人们~ 有位我认识的可爱妹纸居然还曾经借过一本<肉兔的养殖方法>, 这是要干什么...
还有, 文科生和理科生是处在不同的世界的, 文科生眼中的世界是这样的:
而理科生眼中的世界是这样的
不能再讲更多啦, 不改密码其实是件很危险的行为, 而不主动提醒用户修改密码更是不太作为. 虽然有人会说哪有人会无聊到做这种事, 但未必世界有你们所想的那么美好.
最后, 弱口令默认密码其实在复旦的另一个我非常不喜欢的系统中也存在, 有志之士用同样方法是可以造成更大破坏的, 更大破坏的, 更大破坏的, 所以尽管非常非常非常不喜欢, 非常非常非常不喜欢, 非常非常非常不喜欢, 我还是不能公开这个系统. 当然, 各位雷锋也记好了, 做好事不留名其实是很困难的.
然而大姨夫并没有走.
--FIN