那些年,我爬过的北科(序)——我和爬虫的缘分

不止不觉中,已经大学毕业上了研究生了,其实这一系列教程很早就想开始写,因为一堆事情加上拖到了如今。(原写于2017年9月18号)git

缘起

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

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

不过,我发现单纯搞个课表也并无什么卵用,因而我想到了当时正值学校抢课期间,我就作个抢课软件,那还不吊炸天。chrome

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

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

我都作过哪些?

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

USTB选课系统

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

教务信息服务号

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

淘宝Bra爬虫

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

nladuo.github.io/bra/

还书提醒

提醒本身别忘了还书。

链家爬虫

学习scrapy时候写的。

种子站

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

教程大纲

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

一、爬虫介绍

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

二、爬虫基础

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

三、数据存储

  • mongodb的使用

四、反反爬虫

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

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

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

项目地址

相关代码都放在了:github.com/nladuo/USTB…

相关文章
相关标签/搜索