网络爬虫(又称网络机器人),是一种按照一定的规则,自动地抓取网络信息的程序或者脚本。
通俗地讲,我们把互联网比作一张大蜘蛛网,每个站点资源比作蜘蛛网上的一个结点,爬虫就像一只蜘蛛,按照设计好的路线和规则在这张蜘蛛网上找到目标结点,获取资源。
为什么我们需要使用爬虫呢?
1 你的工作是每天整理新闻,获取与目标题材相关的新闻信息,那么就需要你每天固定时间去看新闻网站的更新内容,并一点点复制下来整理。这无疑是费时费力且折磨人的。
2 你非常喜欢某个明星,想把网站中关于她的照片下载下来,然而这个网站并没有提供批量下载的接口,本着对爱豆的执着你决定自己一张张下载,然后你看着长达200多页的页面陷入了沉思。
而在这些场景中,使用爬虫技术可以很轻易地解决问题。所以,我们可以看到,爬虫技术主要可以帮助我们做两类事情:一类是数据获取需求,主要针对特定规则下的大数据量的信息获取;另一类是自动化需求,主要应用在类似信息聚合、搜索等方面。
对于个人来说,爬虫的主要需求是找到自己需要的内容,并处理保存等。此类爬虫一般称为焦点爬虫。是指选择性地爬取那些与预先定义好的主题相关页面的网络爬虫。和通用网络爬虫相比,聚焦爬虫只需要爬取特定的网页,爬取的广度会小很多。如只爬取明星的照片等。
个人获取信息的过程基本可以概述为 :
用户输入网址 —> 找到服务器主机 —> 向服务器发出一个请求 —> 服务器发送给用户的浏览器 HTML、JS、CSS 等文件 —> 浏览器解析 —> 用户查看。
而爬虫一般可以绕过浏览器,直接发送请求,接收数据。然后通过自己的需求修改筛选内容等。这种主要过程如下图
首先我们需要有一个种子 URL 队列,这个队列中的 URL 相当于我们蜘蛛爬行的第一个结点,是我们在大网中爬行的第一步。
对队列中的每一个 URL 进行请求,我们会得到响应内容,通常响应内容为HTML。如果响应内容里面有我们的目标 URL,提取出来加入 URL 队列中。
解析响应内容,提取我们需要的数据。
存储数据,我们可以将数据存储到数据库、文件等。
从这个爬虫的流程来看,学习爬虫需要学习的关键步骤可总结如下:
1、首先我们需要像浏览器一样请求某个 URL ,来获取某个主机的资源,那么请求的方法和正确地获取内容就是我们学习的重点。
2、我们获取到资源(也就是请求 URL 之后获得的响应内容)之后,我们需要对响应的内容进行解析,从而获取到对我们有价值的数据,这里面的解析方法就是学习的重点了。
3、我们获取到数据之后,接下来就需要存储数据了,数据的存储方法也很重要。
所以我们学习的爬虫技术,实际上可以归纳为请求、解析和存储三个基本问题。熟练掌握这三个问题对应的解决方法,爬虫技术就算是掌握了。大家在学习爬虫的过程中,紧紧围绕这三个问题展开,就不会走弯路了。
本节给大家介绍了爬虫的基本概念,让大家对爬虫有一个大致的了解,以便后续章节的学习。