之前对有关网络爬虫的一些工具进行了安装,那么究竟什么是爬虫呢?我们经常会看到这么一幅图。
简单来说,通常把万维网比作一张大网,而蜘蛛呢,就是我们的爬虫程序,网上的各个点就是各个网站,网络爬虫简单来说,就是按照事先定义好的规则,来自动的采集这些网站信息的程序,由于带有“智能”的特点,“网络爬虫”又称“网络机器人”。那么爬虫的过程一般分为数据采集,数据处理,和数据存储这三个部分。爬虫技术的种类也非常多,按照使用场景,主要分为通用爬虫和聚焦爬虫。通用爬虫也称传统爬虫,整体分为4个过程:1.网页抓取,指的是从一个或者若干初始网页的URL开始,获得初始网页的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。2.数据存储,即搜索引擎将爬取到的网页中所需要的数据存入到原始页面数据库中。3.预处理,这时需要对这些数据进行一定的预处理,比如信息抽取,分词,去噪(比如版权声明文字、导航条等一些信息)。4.提供检索服务,网站排名。传统爬虫其局限性也非常明显,我们使用通用搜索引擎返回的结果都是网页,很多内容并不是用户所需要的,而且搜索引擎大多提供基于关键字的检索,难以支持根据语义信息提出的来查询,无法准确理解用户的具体需求。由于这些问题,实际过程中,所采取的是聚焦爬虫,聚焦爬虫是一种面向特定主题需求的一种网络爬虫程序,其与传统爬虫的区别在于,它在进行网页抓取时会对内容进行处理筛选,尽量保证只抓取与需求相关的网页信息。那么如何查看网页源代码所对应的页面内容呢?非常简单,以csdn网站为例,在网站所在页,鼠标点击“右键”单击“检查”,点击"Elements"选项就可以看到网页源代码,与此同时可以看到与页面内容对应的源代码信息了。
因此如果我们想要获取网页内容,就需要从这些代码中,利用解析库把代码中所包含的内容解析出来。整个爬虫的基本流程分为4步:
- 发起请求:通过HTTP库向目标站点发起请求,即发送一个Request,请求可以包含额外的headers等信息,等待服务器响应。
- 获取相应内容:如果服务器能正常响应,会得到一个Response,Response的内容便是所要获取的页面内容,类型可能是HTML文件,JSON文件,二进制数据(比如图片、视频等)等类型。
- 解析内容:得到的内容可能是HTML,可以使用正则表达式、网页解析库进行解析。也可能是JSON,可以直接转为JSON对象解析,可能是二进制数据,可以做保存或者进一步处理。
- 保存数据:保存形式多样,可以存为文本,也可以保存至数据库,或者保存为特定格式的文件。
整个爬虫过程主要就是上面这4步。