文章目录
一、爬虫概念
1.1、概念
网络爬虫也叫网络蜘蛛,特指一类自动批量下载网络资源的程序,这是一个比较口语化的定义。更加专业和全面对的定义是:网络爬虫是伪装成客户端与服务端进行数据交互的程序。这个专业的定义很重要,它描述了整个爬虫的过程,并提出了我们学习的内容:客户端,数据之间的交互过程;同时告诉我们,我们要做的工作,是伪装;在之后的学习过程中,在以后进行爬虫动作的时候,可以先将这句话复述一下,就知道如何下手去爬虫了。
1.2、作用
- 数据采集
大数据时代来临,数据就是核心,数据就是生产力,越来越多的企业开始注重收集用户数据,而爬虫技术是收集数据的一种重要手段。 - 搜索引擎
百度,谷歌等搜索引擎都是基于爬虫技术。 - 模拟操作
爬虫也被广泛用于模拟用户操作,测试机器人,灌水机器人等。
1.3、开发的重难点
- 数据的获取
网络公共资源都是为用户准备的,为了避免被爬虫采集,服务端会设置非常多的图灵测试,阻止爬虫的恶意爬取,也即是反爬措施。爬虫开发工程师在开发爬虫时,需要解决这些反爬措施。我们在开发爬虫的过程中,有很大一部分的工作就是处理这些反爬措施。 - 采集的速度
大数据时代,需要巨大的数据量,动辄千万条的级别,甚至上亿条。如果采集速度跟不上,耗时过长,那么就达不到商业要求。一般我们会采取并发以及分布式来解决速度上的问题。这也是爬虫开发过程中的另外一个重心。
二、HTTP与HTTPS
2.1、网络架构
-
c/s 即 client server 客户端 服务端
-
b/s 即 browser server 浏览器 服务端
-
m/s 即 mobile server 移动端 服务端
互联网的飞速发展是商业经济推动的。目前几乎所有的商业应用都是基于互联网的,它们一般采用c/s架构,b/s架构或者m/s架构。
2.2、HTTP协议
2.2.1、原因
计算机之间的交流与人之间的交流类似,人之间要说汉语,遵循一定的语法结构,普通话,声音洪亮等要求,这些要求,或约数,或规则,也可以叫做协议;这种协议保障了交流可能,能够互相理解对方传达的具体信息;计算机之间也是需要一种规则,保障之间信息的有效交流,这就是HTTP协议;
2.2.2、概念及特点
- HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW: World Wide Web )服务器传输超文本到本地浏览器的传送协议。
- 目前互连网上90%的网络传输都是基于http协议。
- HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等);ps:使用TCP通信协议的重要的原因是基于其 面向连接的 特点;
2.2.3、HTTP协议的使用
HTTP请求流程
一次http请求的基本流程是,有客户端向服务端发起一次请求(request),而服务器在接收到以后返回给客户端一个响应(response)。所以一次完整的http请求包含请求和响应两部分。