爬数据

Published: 25 Nov 2017 Category: 技术

爬数据,我们用几个简单的问答来普及一下把

作者:冰淇淋 链接:https://www.zhihu.com/question/20756208/answer/22875708 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

1、为什么叫“爬数据”?

爬数据的“爬”,取自于英文web crawler。(第一次硬是没明白为什么叫这名字,预想可能是刚出现这东西的时候跑得很慢)

2、怎么爬?

简单的说,想像自己看一个网页然后右键存下来,标记访问过,再点击网页上出现的未访问过的所有链接,再一个个存下来,只要有下一个链接,你就继续点。所谓的爬只是用程序实现了这个过程。总的来说根据目标不同有两种点法:这里引入图论,比如要“爬”一个网站,我们把整个网站看做一张图,从主页到最深层的子页。图的遍历方法有两种:Depth First Search (深度优先搜索):使用递归搜索到最深层的子页,然后向上搜索,内存占用较高,可以先目标到此网站的最末端比如说资源下载链接,图片链接。Breath First Search(广度优先搜索):使用queue(队列)实现一层层的搜索,内存占用较低,会优先目标网站的主页面,副页面以及一般浏览页面。第二种用得比较多,用于把网站的几个主要页面弄下来以后停止。当然如果用到很牛逼的设备,还得注意“politeness”(礼貌),像用google的设备用得不好可以几毫秒挤垮一个网站,这样就属于攻击了,爬的同时不要占用网站正常客户的流量。

3、有什么用?

crawler最大的用处就是搜索引擎了,比如google的crawler会遍历各种各样的网站然后作为文件存储下来,当用户发出搜索命令时,只需在服务器搜索里给出结果。可以说没有crawler,就没有搜索引擎。当然,现在所谓的大数据,很多也就是把这些存下的页面做字词分析,现在这么火主要在于数学分析模型的进步。而弄到数据的方法,早就不是什么新鲜的东西。

4、用什么语言?

语言上并没有太多限制,在受欢迎程度上看,python在这一领域有绝对优势。