.

放下你手里的代码爬虫技术的善与恶罪

“放下你手里的代码,小心被抓。”

最近程序员圈子不乏这样的戏谑调侃。

原因是最近发生的多起涉及爬虫技术的公司被司法部门调查。近日,51信用卡被查,更是将暴力催收背后非法使用爬虫技术爬取个人隐私数据的丑行,暴露在阳光之下。

一时间,“爬虫”成为众矢之的,一些公司紧急下架了爬虫相关的招聘信息,给大数据风控、人工智能从业者带来些许恐慌,头发又多落了几根。

实际上,大部分人都听说过爬虫,认为爬虫就是到人家网站上去爬东西、偷数据,有些人甚至认为只要有爬虫,什么数据都可以搞到。

今天,我们就打开爬虫这个“工具箱”,把涉及到的技术盲区放到灯光下,让大家可以清楚地看下。下面,本文就从这个角度来聊聊爬虫这个熟悉而又陌生的技术。

爬虫的技术原理

搜索引擎收集网上信息的主要手段就是网络爬虫(也叫网页蜘蛛、网络机器人)。它是一种“自动化浏览网络”的程序,按照一定的规则,自动抓取互联网信息,比如:网页、各类文档、图片、音频、视频等。搜索引擎通过索引技术组织这些信息,根据用户的查询,快速地提供搜索结果。

设想一下,我们平时浏览网页的时候会怎么做?

一般情况下,首先,会用浏览器打开一个网站的主页,在页面上寻找感兴趣的内容,然后点击本站或其它网站在该网页上的链接,跳转到新的网页,阅读内容,如此循环往复。如下图所示:

图中的虚线圆角矩形代表一个网站,每个实线矩形表示一个网页。可以看到,每个网站一般以首页为入口,该首页链接到几个、几万个、甚至上千万个的内部网页。同时,这些网页往往又链接了很多外部网站。例如,用户从苏宁金融的网页为起点,浏览发现了PP视频的链接,点击后跳转到了PP视频主页,作为体育爱好者,在体育频道中找到了相关的新浪微博的内容,再次点击后又来到微博的页面继续阅读,从而形成了一条路径。如果把所有的可能路径呈现出来,就会看到一个网络结构。

网络爬虫模拟了人们浏览网页的行为,只是用程序代替了人类的操作,在广度和深度上遍历网页。如果把互联网上的网页或网站理解为一个个节点,大量的网页或网站通过超链接形成网状结构。爬虫通过遍历网页上的链接,从一个节点跳转到下一个节点,就像是在一张巨大的网上爬行,但是比人类的速度更快,跳转的节点更全面,所以被形象地称为网络爬虫或网络蜘蛛。

爬虫的发展历史

网络爬虫最早的用途是服务于搜索引擎的数据收集,而现代意义上的搜索引擎的鼻祖是年由加拿大麦吉尔大学(UniversityofMcGill)学生AlanEmtage发明的的Archie。

人们使用FTP服务器共享交流资源,大量的文件散布在各个FTP主机上,查询起来非常不方便。因此,他开发了一个可以按照文件名查找文件的系统,能定期搜集并分析FTP服务器上的文件名信息,自动索引这些文件。工作原理与现在的搜索引擎已经非常接近,依靠脚本程序自动搜索分散在各处FTP主机中的文件,然后对有关信息进行索引,供使用者以一定的表达式查询。

世界上第一个网络爬虫“互联网漫游者”(“


转载请注明:http://www.abachildren.com/sszl/1333.html