从零开始写一只爬虫 · 开篇

爬虫

对于爬虫,其实大二暑假就玩过一些的。当时是为给某老师的项目组做数据采集模块,谁知道后来目的越来越不明确,加上开会时间都是老师在吹牛,导致整个项目组成了光杆司令。后来知道他又在拿这个任务 “祸害” 整整一届人,我就把已经写好的代码传给了下一届。至于最后得什么奖啊吧啦吧啦吧啦都与我无关。既然选择了放弃,就 Let It Go 吧。

当时自己手写过一个小的虫子,最后决定用了 WebMagic 这个垂直爬虫框架。而对于过于强大的 Apache Nutch,由于时间关系没有涉足。

今年假期里面,有一个项目又用到了爬虫。先拿 Python 写了一个,跑得很溜,但最后整个项目必须用 Java 交付。于是又用起了 WebMagic……

闲言少叙。下面进入正题。

什么是爬虫?

看一下墙上的蜘蛛:它在 “网” 上面爬行着,发现网上面有了猎物,就去把它吃掉。互联网就是一个大网啊。还记得有个著名的理论叫做 “六度分离理论” 么?每个人和这个世界上的其他人都是有联系的。同样的,每一张网页,和整个互联网都是有联系的。我们可以通过访问一个网页,获取这个网页里面自己感兴趣的内容,同时 “点击” 网页中的链接,打开却更多的网页,获取更多的内容。Ok,爬虫就是来做 “打开链接、获取内容” 工作的。

比如说,我想获取到某个招聘网站上所有的公司名称(很奇怪的兴趣,是吧?),我可以一个网页一个网页得打开、复制、保存,也可以将这个枯燥而无味的工作交给爬虫来自动化地解决。只需要设置一个 “开始”,爬虫便能自动地打开这个招聘网站上的每一个链接,找到每一个公司,获取想要的信息,然后保存下来。

更加官方的解释可以看维基百科爬行动物哦不对是网络蜘蛛。似乎百度百科上面的解释更全面一些?

工欲善其事,必先利其器。

不得不承认 Java 是一条好狗,但是我就是不想用 Java,无缘无故地讨厌 Java。于是本次教程便使用简洁优雅的 Python 了。

哦对了,Python 还分 2.X 和 3.X,作为一个不用最新版就会死星人……嗯你懂。虽然 Ubuntu 里面 2.7 和 3.4 是共存的,虽然我也会很强迫症地把所有东西都 pip 安装一遍,pip3 安装一遍。

IDE 方面,刚刚申请到了 InteliJ学生账号,正好拿来得瑟一番。但是,得瑟的代价是严重的,PyCharm 对电脑性能的要求太高了……很卡……6G 内存卡严重的时候,上个厕所回来还在卡。

这次就以抓取某招聘网站的所有公司名称和所在地为例了啊~~

当然,后面为了演示登录功能,会以抓取某个 dns 网站为例子。

留下评论