爬行动物(1)
而我是一个菜鸟,也因为一系列的巧合,慢慢变成了专门从事爬虫行业的一员。
我在这里,就是说,简要的,我对爬行动物的认识,欢迎大家拍砖!
爬行动物:
网络爬虫(Web crawler,也称为web spider,web robot,在FOAF社区中,更常被称为web chaser)是一种按照一定规则自动抓取万维网上信息的程序或脚本。其他不常用的名字是蚂蚁、自动索引、模拟器或蠕虫。——摘自百度百科
在我的理解中,他是一个模拟网络协议和人工行为的程序。功能是收集数据。为了方便大数据的统计分析等等。
爬行动物的分类:
通用爬虫、聚焦爬虫、增量爬虫和深度爬虫。——摘自百度百科
在我的理解中,如果从本质上区分,他可以分为两种类型。一种是增量爬虫,适合爬全站。一种是通用的,适合收集指定类型的页面。
简单来说,如果是增量,就是一进一出。线程的数量将会增加。一般来说,线程的数量不会增加。只有一些指定的页面被爬取用于数据收集。
如果从构图上做一个区分,也可以分为两种。
?一种是通过渲染抓取。
?一种是抢包抢数据!两者各有利弊。?
如果按功能来分,可以分为两种。
一种是作为程序内置模块运行,所以不存在数据遗漏,在响应时间上也有一定要求,需要保证及时性和准确性。
一个是作为爬行动物的一个单独模块来测量的。对于反应时间和数据遗漏,不能说没有要求,但是要求会低很多。
爬虫好像没有语言要求,只要你能解析数据,发送请求就行。这两个是基本条件。似乎所有的语言都能做到这一点。而且我认识的从事爬虫方向的都是c#、java、php、python甚至js。
增量爬虫:适用于爬全网站,爬全网站所有页面。爬虫内部的url库会不断增加。并增加线程的数量。
通用爬虫:适用于轮训、监控等目的监控抓取固定数据。
渲染爬虫:是采用渲染模式的爬虫,使用浏览器内核加载渲染页面。它的特征可以模拟老鼠。键盘等行为,但是速度慢。
抓取包的爬虫:用抓取包的方式模拟固定的http协议,满足一些需求。特点,速度快。
内置爬虫:对信息的准确性和时效性要求很高。比如一个关键词3秒内,获取淘宝上该关键词的所有商品信息,以便及时反馈给app。
普通爬虫:监测某一类商品或某一种商品的价格变化,对数据要求的准确性低于上述。毕竟1年的现状。在数据量巨大的情况下,对这些词的影响并不大!