
这得从年轻时候说起。
我有一群饥渴的室友(嗯,就是室友,不是自己),由于那时候年轻,不知道 1024 这等网站的存在,等上的小黄片网站大多经常更换网址 + 满屏广告,体验很是不好。有一天,一个室友抱怨说:哎……要是小黄文、小黄图、小黄片都自动进我硬盘就好咯!
说者无意,听者有心。于是乎,我开始入了爬虫的坑。
那种羞羞的小网站算是非常好抓的,尽管网址各不相同,但是大多是从同一个模板生成的,而且根本就没有反爬策略。所以,一套代码就足以应对很多网站了。在经过一个下午的努力之后,室友的愿望实现了,那些让人营养跟不上的内容,很快塞满了他的硬盘。记得当时是写了一篇博客介绍,不过几次迁移博客,那篇文章已经找不到了。
后来,我不满足于抓定向小网站的内容,开始尝试新的思路。从一个网址出发,广度优先遍历,不再指定具体规则和解析策略,而是从 HTML 中正则匹配 ed2k 链接。后来嘛,程序自动下载的 ed2k 链接足够室友这辈子营养不良。
然后找了第一份工作,开始从写爬虫玩,变成了写爬虫养活自己。开始写各种比较大规模的爬虫,对非常大量的数据做抓取,以及有机会使用大量机器做抓取,当然,工作内容,不细表。虽不细聊,但是这段经历可以算是对我写爬虫技能长进帮助最多的了。
再后来,抓过知乎用户数据,当时写了一篇文章《一个知乎重度用户眼中的知乎》那时候的一百万知乎用户和现在的一百万知乎用户,所占的比例应该是非常不一样的。还顺手做过一个小网站,聚合知乎用户的信息,提供简单的检索功能,大概是这样:
然后看到知乎站内如此多爆照钓鱼问题,就写了一个程序,根据问题下各回答的文本密度和图片数量,以及回答下的评论内容等信息,自动判断钓鱼回答并抓取,效果还挺好。就注册了一个域名 「zhihu.photo」,又做了一个聚合小站(已经下线,由于知乎已经改版,代码你只能 star,并用不上:GitHub):
说起来写爬虫,我对知乎绝对算得上是真爱了。针对知乎写了好多不同种类的爬虫,还很情怀地(当然也是为了防止被反爬虫命中)故意放慢了爬虫速度,希望不对知乎服务器造成任何压力。来知乎工作后才知道,我写爬虫那个年代,知乎还没有反爬虫系统。知乎的第一版反爬虫系统,就是我写的,我还给它取了个很中二的名字。
再后来就针对最最没有基础的同学写了几篇博客,据我得到的反馈,至少有一个朋友看我博客受到了一点点启发:
最后的一点体会是,很多情况下,爬虫程序对个人的提升比较有限,各位差不多就得了,同样的时间,有更多收益更大、更值得做的事情。
