那些年,我爬过的北科(序)——我和爬虫的缘分
2018-12-13 10:49:55

不止不觉中,已经大学毕业上了研究生了,其实这一系列教程很早就想开始写,由于一堆事情加上拖到了现在。

缘起

大概是大二下学期刚开学的时候,我开始接触了Web开发,那个时候跟着网上看视频,学习了HTTP Get与Post请求,了解了网站是怎么个工作的。我当时突然联想到了平时都在用的课程格子,想着十分有趣,想着能不能用这种技术去做这样一款查课表的东西。

于是乎,网上寻找资料,了解了登陆的原理,以及如何获取到Cookie。当时,我最熟悉的语言是C#,从网上找了个解析HTML的dll,用着自带的HttpWebRequest就开始搞了。那时还不会用chrome,用的HttpWatch,也遇到了很多坑,不过也通过自己的努力把学校的课表搞下来了。

不过,我发现单纯搞个课表也并没有什么卵用,于是我想到了当时正值学校抢课期间,我就做个抢课软件,那还不吊炸天。

于是我用那个只能在IE上跑起来的HttpWatch抓到了JSON的数据,当时也不知道JSON是什么,只知道XML,还网上问了一下这是什么格式的数据,后来就知道这是传说中的JSON,又去恶补了一遍JSON的知识。然后又找了个C#的解析JSON的dll,在我的电脑上把抢课的软件跑起来了,下面就是当时的软件截图。

course_cli

就是通过这个自己编写的这个爬虫软件,我选上了当时的“英文记录片视听”这门课,不过后来听说这门课有点坑,我又给退了,o(╯□╰)o。

我都做过哪些?

自从那以后,我开始对爬虫产生了浓厚的兴趣,没事儿就爬点东西玩儿,下面是我搞过的几个和爬虫相关的小应用。

USTB选课系统

练习客户端开发,把我校的选课系统移植到了Android、iOS、Mac、Ubuntu、Windows客户端上,见https://github.com/nladuo/ustb_choose_course_system
course_ubuntu

教务信息服务号

查询教务系统的成绩、学分、课表等,用来练习微信开发的。
wechat

淘宝Bra爬虫

统计一下中国女性的胸围分布。

http://nladuo.github.io/bra/

还书提醒

提醒自己别忘了还书。
book_reminder

链家爬虫

学习scrapy时候写的。
lianjia_crawler

种子站

拿DHT爬虫+Sphinx做的种子搜索引擎,后来数据太多了,网站已经关了,只有图了。
seeds

教程大纲

谈完了我和爬虫君的缘分后,便要开始进入正题了。在之后的几篇文章中,我将从基础的定向爬虫开始讲起,并结合多线程提高抓取速度,通过数据库来缓存数据。之后会聊一聊反反爬虫的技术,解决一些限制性的问题。因为爬虫最原始的功能其实是构建搜索引擎,最后,将会使用ElasticSearch构建一个搜索的案例。

1、爬虫介绍

  • ①爬虫是什么?
  • ②环境搭建与入门

2、爬虫基础

  • ①爬取网页新闻列表
  • ②Session登陆
  • ③多进程爬取

3、数据存储

  • mongodb的使用

4、反反爬虫

  • ①JS渲染:selenium+phantomjs的使用
  • ②ip防禁:使用代理IP
  • ③简单验证码破解:使用KNN

5、案例——北科贴吧帖子搜索

  • ①爬虫编写
  • ②使用ElasticSearch搜索帖子

项目地址

相关代码都放在了:https://github.com/nladuo/USTBCrawlers

Prev
2018-12-13 10:49:55
Next