精通 Node 爬虫-01-给门外汉说明白什么是爬虫

记得我刚刚入职不久,我就接到一个爬虫任务。当时负责设计的同事就问我到底什么是爬虫,当时我的解释是:“程序模仿人访问网页数据的行为,获取想要的数据。”这个解释是没问题的,但是门外汉肯定听得一脸懵逼。而且更让我惊讶的是,同样是敲代码的同行,也不是每一个人都会写爬虫(之前我一直都觉得爬虫应该每一个敲代码的都会吧),不少的人还对爬虫有很多误解。

挠头

到底什么是爬虫

在说明白这个问题之前,我想先问一个问题:你是怎么看到这篇文章的?这个问题很重要,因为它是回答什么是爬虫以及爬虫原理的关键。

这个问题的前提条件如下:

  1. 我写了这篇文章发表在慕课网手记
  2. 你想了解爬虫

如果没有第一点,别人是看不到这篇文章的(废话)。如果没有第二点,别人是不会看这篇文章的(泥垢了 [・` Д´・ ])。第一点的文章数据,第二点的爬虫关键词

让我假设一下你是怎么访问到这篇文章的:

情况一:

  1. 你百度关键词爬虫,百度给你显示了很多个结果,其中一个结果是这篇文章
  2. 你进入了慕课网手记。

情况二:

你访问慕课网,想学习一些关于爬虫的知识,于是你在慕课网的搜索框里输入了关键词爬虫,重现情况一的第二步。

回答完这个问题,就能回答什么是爬虫了。划重点:

重点分割线 start


爬虫就是一个模仿人浏览网页行为,根据所提供的关键词,获取到所需数据的程序。

所以你怎么访问网页数据,爬虫也是以同样的方式去获取数据。无论是 node 写的爬虫还是 python 写的爬虫,它们原理都是一样的。

给爬虫程序一个网址(url),设定好要爬取的关键词爬取规则,程序模仿浏览器向网站的服务器发起请求,服务器返回请求结果(这个结果可能是HTML代码,也可能是 JSON 格式的数据),通过爬取规则过滤出所需的数据,并处理成适合的数据格式储存到本地。


重点分割线 end

关于urlHTML的解释,可以看看秋名山车神的文章:精通 Python 爬虫-01-不断前行的蜘蛛

你是不是对爬虫有什么误解?

误解一:爬虫是不是能破解 xxx 网站的数据。

回答:爬虫只是模仿人的行为访问网页数据,你看不到的数据,爬虫也无能为力,爬虫的作用不是破解,而是为了更快的帮人获取数据。

误解二:只能用 Python(或者 Node.js)写爬虫吗?

回答:爬虫程序的实现与具体使用什么编程语言关系不大,因为爬虫这种技术,既不需要你系统地精通一门语言,也不需要多么高深的数据库技术,只要这个语言有访问网络数据的方法。Java,PHP,甚至 Shell 命令都能写爬虫,只是看你用什么语言顺手罢了。

误解三:爬虫能不能攻击别人的网站

回答:本来爬虫的使用目的只是帮人跟快更方便的获取对自己有用的数据,然而密集的请求对大多数公司的服务器是一个很大的负担。爬虫的意义不在于攻击,而在于抓取数据。所以当我们要对一个网站的大量数据进行抓取时,应该有一个延迟机制,避免对服务器造成负担,毕竟玩坏一个网站对我们又没有什么好处。

最后假装很正经的抄一份车神的声明。

声明:

本系列文章原创于慕课网,作者布宝,任何人不得以任何形式在不经作者允许的情况下,进行任何形式的印刷以及销售,转载需注明出处及此声明。

对文章有任何问题请在下面留言,我会不定期的回复大家。

人非圣贤,如果文章有错别字请大家自行区分或指正出来,我将不定期修改错误的地方。

本系列能否持久更新下去离不开大家的支持与鼓励,以及对原创版权的尊重。


精通 Node 爬虫-01-给门外汉说明白什么是爬虫
https://bubao.github.io/posts/e928f138.html
作者
一念
发布于
2018年5月19日
许可协议