近两年随着大数据的兴起,爬虫一行,也逐渐进入了大众的视野。
而我这个初出茅庐的菜鸟,也因为一系列的起源巧合,慢慢的转变成了一个专门从事于爬虫行业的一份子。
我在这里呢,也就是简单说一下,我对爬虫的理解,欢迎各位大佬拍砖!
爬虫:
网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。 ---摘自百度百科
在我的理解中,他就是一个模拟网络协议,模拟人工行为的一种程序。 作用是,数据采集。以便于大数据等等等等的统计分析。
爬虫的分类:
通用网络爬虫(General Purpose Web Crawler)、聚焦网络爬虫(Focused Web Crawler)、增量式网络爬虫(Incremental Web Crawler)、深层网络爬虫(Deep Web Crawler)。 --摘自百度百科
在我的理解中,他如果从本质上区分的话,分为 两种,一种是增量式的爬虫,适合爬取全站。 一种是 通用式的,适合采集某种指定的类型的页面。
简单说,就是,增量式的话,一进多出。线程的数量会不听的增加。通用式的话就是,线程数量不会增加。 只爬去指定的某些页面,来进行数据采集。
从构成上来进行区分的话,就也分为两种,
一种是 通过渲染来进行的抓取。
一种是通过抓包来进行的数据抓取! 两种各有利弊吧。
如果从功能上分的话,分为两种,
一种是作为程序内置模块来操作的话,是不允许有数据遗漏的,并且在反应时间上也是具有一定的要求,是需要保证时效性,准确性的。
一种是作为爬虫这个单独的模块来进行衡量的。 对于反应时间,还有数据遗漏方面不能说没有要求但是要求就会低很多。
貌似爬虫是对于语言没有什么要求的,只要你能解析数据,只要你能发送请求。 这两个就是基本条件。貌似所有的语言都可以做到这个吧。 而我所知道的从事于爬虫方向的,都有 c#,java,php,python,甚至还有js的。
增量式爬虫: 适用于爬取全站,将整个网站的所有的页面都进行一遍抓取。 爬虫内部的url库会不停的增加。并且增加线程的数量。
通用式爬虫: 适用于轮训,监控等目的,来进行固定数据的监控抓取。
渲染爬虫: 是采用渲染方式,既采用浏览器内核来进行页面加载以及渲染的爬虫,特点,可以模拟鼠标。键盘等行为,但速度较慢。
抓包爬虫:采用抓包的方式,来进行固定http协议模拟达到自己的某种需求。特点,速度快。
内置爬虫:既对于信息的准确以及时效性要求很高。例如,一个关键词3秒内,拿到淘宝上所有这个关键词的商品信息,用来及时的反馈给app.
普通爬虫:监控某类商品,或某个商品的价格变动情况,对于数据的要求准确性就相比上面那个能低一点。毕竟 1年内时时彩的情况。 在庞大的数据量的情况下,对于这些的话影响不是很大!