记得我刚刚入职不久,我就接到一个爬虫任务。当时负责设计的同事就问我到底什么是爬虫,当时我的解释是:“程序模仿人访问网页数据的行为,获取想要的数据。”这个解释是没问题的,但是门外汉肯定听得一脸懵逼。而且更让我惊讶的是,同样是敲代码的同行,也不是每一个人都会写爬虫(之前我一直都觉得爬虫应该每一个敲代码的都会吧),不少的人还对爬虫有很多误解。
到底什么是爬虫在说明白这个问题之前,我想先问一个问题:你是怎么看到这篇文章的?这个问题很重要,因为它是回答什么是爬虫以及爬虫原理的关键。
这个问题的前提条件如下:
- 我写了这篇文章发表在慕课网手记
- 你想了解爬虫
如果没有第一点,别人是看不到这篇文章的(废话)。如果没有第二点,别人是不会看这篇文章的(泥垢了[・`Д´・ ])。第一点的文章
是数据,第二点的爬虫
是关键词。
让我假设一下你是怎么访问到这篇文章的:
情况一:
- 你百度关键词
爬虫
,百度给你显示了很多个结果,其中一个结果是这篇文章 - 你进入了慕课网手记。
情况二:
你访问慕课网,想学习一些关于爬虫的知识,于是你在慕课网的搜索框里输入了关键词爬虫
,重现情况一的第二步。
回答完这个问题,就能回答什么是爬虫了。划重点:
重点分割线start
爬虫就是一个模仿人浏览网页行为,根据所提供的关键词
,获取到所需数据
的程序。
所以你怎么访问网页数据,爬虫也是以同样的方式去获取数据。无论是node写的爬虫还是python写的爬虫,它们原理都是一样的。
给爬虫程序一个网址(url
),设定好要爬取的关键词
和爬取规则
,程序模仿浏览器向网站的服务器发起请求,服务器返回请求结果(这个结果可能是HTML
代码,也可能是JSON格式的数据),通过爬取规则
过滤出所需的数据,并处理成适合的数据格式储存到本地。
重点分割线end
关于url
和HTML
的解释,可以看看秋名山车神的文章:精通Python爬虫-01-不断前行的蜘蛛。
误解一:爬虫是不是能破解xxx网站的数据。
回答:爬虫只是模仿人的行为访问网页数据,你看不到的数据,爬虫也无能为力,爬虫的作用不是破解,而是为了更快的帮人获取数据。
误解二:只能用Python(或者Node.js)写爬虫吗?
回答:爬虫程序的实现与具体使用什么编程语言关系不大,因为爬虫这种技术,既不需要你系统地精通一门语言,也不需要多么高深的数据库技术,只要这个语言有访问网络数据的方法。Java,PHP,甚至Shell命令都能写爬虫,只是看你用什么语言顺手罢了。
误解三:爬虫能不能攻击别人的网站
回答:本来爬虫的使用目的只是帮人跟快更方便的获取对自己有用的数据,然而密集的请求对大多数公司的服务器是一个很大的负担。爬虫的意义不在于攻击,而在于抓取数据。所以当我们要对一个网站的大量数据进行抓取时,应该有一个延迟机制,避免对服务器造成负担,毕竟玩坏一个网站对我们又没有什么好处。
最后假装很正经的抄一份车神的声明。
声明:
本系列文章原创于慕课网,作者布宝,任何人不得以任何形式在不经作者允许的情况下,进行任何形式的印刷以及销售,转载需注明出处及此声明。
对文章有任何问题请在下面留言,我会不定期的回复大家。
人非圣贤,如果文章有错别字请大家自行区分或指正出来,我将不定期修改错误的地方。
本系列能否持久更新下去离不开大家的支持与鼓励,以及对原创版权的尊重。
热门评论
写的不错,支持一下~
写的不错,支持一下~
那我就很疑问了,例如小网站上可以看到正版网站上要钱的小说。那这些小说是小网站买了之后再发布的么?还是有什么技术可以获取这些正版小说?