爬虫的基本原理是基于网站网络协议,根据网址批量获取到网页上的信息操作过程。简单一点说就是用计算机程序来模拟人工点击网页获取数据的过程。
本教程将通过网络协议介绍、http请求流程、网页中的请求与返回、爬虫工作过程来为大家详细介绍爬虫是如何展开工作的。
(一)网络协议
我们经常会在URL的首部会看到http或者https,这个就是访问资源需要的协议类型,爬虫常用的是http和https协议。
http(HyperText Transfer Protocol )超文本传输协议,是互联网上应用最为广泛的一种网络协议。http是可靠的数据传输协议,由于它是短链接的,也就是一次请求,一次响应断开,所以它表现处无状态的现象。
https ( Hyper Text Transfer Protocol over Secure Socket Layer)是以安全为目标的 HTTP 通道,可以理解为是HTTP的安全版,即 HTTP 下加入 SSL 层,简称为 HTTPS。HTTPS的安全基础是SSL,所以他传输的内容都是经过SSL加密的,它的主要作用:
1.建立一个信息安全通道,来保证数据的传输安全。
2.确认网站的真实性,凡是使用了https 的网站,都可以通过点击浏览器地址栏的锁头标志来查看网站认证之后的真实信息,也可以通过 CA 机构颁发的安全签章来查询。
HTTP和HTTPS的区别:
1.https协议需要到ca申请证书,一般免费证书很少,需要交费。
2.http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
3.http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4.http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
(二)HTTP/HTTPS请求流程
一次HTTP请求操作,其过程可分为4步:
1.在浏览器地址栏(或点击一个超链接)HTTP的工作就开始了;
2.建立连接后,客户端向服务器端发送一个请求;
3.服务器接受到请求后,给其响应;
4.客户端浏览器接受响应之后,在用户的浏览器渲染显式。然后客户端和服务器端断开连接。
HTTPS是基于HTTP的,不同的是他在TCP/IP协议上面又新加了一层SSL。一次HTTPS请求操作,其过程可分为6步:
1、客户端发送请求https连接;
2、服务器返回加密公钥,通常是SSL证书;
3、客户端从这个SSL证书解析出公钥,并随机生成一个key,通过公钥加密这个key发送给服务器(这一步是安全的因为只有服务器才有私钥能读出这个key);
4、服务器通过私钥解密出key;
5、客户端使用这个key来加密需要传输的数据;
6、服务器使用key来解析数据。
(三)网页中的请求与返回
打开任何一个网页,F12,选择Network,清除后刷新,就会出来一系列的请求数据。
Headers是网络协议请求和相应的核心,它承载了关于客户端浏览器,请求页面,服务器等相关的信息。
request headers可以理解为用于在请求消息中向服务器传递附加信息,主要包括客户机可以接受的数据类型,压缩方法,语言,以及客户计算机上保留的信息和发出该请求的超链接源地址等。以下为request headers属性简介:
request headers属性response headers可以理解为用于在http请求中服务器向浏览器传递附加信息,主要包括服务器传递的数据类型,使用的压缩方法,语言,以及服务器的信息和响应该请求的时间等。以下为Response 属性:
页面数据的获取,其实就是从客户端发送请求到服务器,然后由服务器根据请求返回数据的过程,这也是爬虫抓取数据的基本原理。
(四)ForeSpider爬虫工作过程
1.获取网页数据
爬虫的获取页面其实是获取网页源代码,然后从中提取我们想要的数据。
ForeSpider爬虫工具中已经搭建好了抓取的脚本框架,只需要按照人工点击进入页面的过程在爬虫软件中进行配置体现即可。
案例一:采集凤凰网每日要闻
人工:打开网站→点击新闻列表中某个新闻→打开新闻看到数据。
爬虫:创建任务→抽取新闻列表链接→抽取数据。
如下图所示:
创建任务 抽取新闻列表 获取数据案例二:采集孔夫子旧书网所有分类的旧书信息
人工:选择某图书类别→点击某类别图书列表中某一本→打开图书界面,看到数据。
爬虫:抽取所有分类链接→抽取某分类所有列表链接→抽取数据。
抽取所有分类链接 抽取商品数据 抽取结果展示2.采集数据
配置好爬虫后,点击开始采集。以案例二为例,如下图所示:
数据采集界面3. 导出数据
采集完数据以后可以直接导出数据为csv/excel格式。
导出数据
网友评论