一、什么是网络爬虫
网络爬虫(又称为网络蜘蛛、网络机器人)可以按照指定的规则(网络爬虫的算法)自动浏览或抓取网络中的信息,通过 Python 可以很轻松地编写爬虫程序或者是脚本。简单的来说,爬虫就是通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程。
网络爬虫在法律上是不被禁止的,但它具有违法风险。爬虫带来的风险主要体现在两个方面:
- 爬虫干扰了被访问网站的正常运行;
- 爬虫抓取了受到法律保护的特定类型的数据或信息;
二、爬虫的分类
- 通用爬虫:抓取系统重要组成部分,抓取的是一整张页面的数据;
- 聚焦爬虫:建立在通用爬虫的基础之上,抓取的是页面中特定的局部内容;
- 增量式爬虫:检测网站中数据更新的情况,只会抓取网站用最新更新出来的数据;
三、反爬机制与反反爬策略
一些网站通过制定相应的策略或者技术手段,防止爬虫程序进行网站数据的爬取,这样的机制被称为 反爬机制。
爬虫程序可以通过指定相关的策略或者技术手段,破解一些网站具备的反爬机制,从而可以获得这些网站中相关的数据,这就是 反反爬策略。
robots.txt 协议,规定了网站中哪些数据可以被爬取,哪些数据不可以被爬取。它是一个君子协议。
四、HTTP协议与HTTPS协议
HTTP 全称是 Hypertext Transfer Protocol,中文名是 超文本传输协议,其作用是把超文本数据从网络传输到本地浏览器,能够确保高效而准确地传输超文本文档。
爬虫过程中,HTTP 协议中常用的请求头信息:
请求头信息 | 含义 |
---|---|
User-Agent | 请求载体的身份标识 |
Connection | 请求完毕后,是断开连接还是保存连接1 |
爬虫过程中,HTTP 协议中常用的响应头信息
响应头信息 | col2 |
---|---|
Content-Type | 服务器响应回客户端的数据类型 |
HTTPS 全称是 Hypertext Transfer Protocol over Secure Socket Layer,是以安全为目的地 HTTP 通道,简单讲就是 HTTP 的安全版,即在 HTTP 下加入 SSL 层,简称 HTTPS。
HTTPS 的安全基础是 SSL,因此通过该协议传输的内容都是经过 SSL 加密的,SSL 的主要作用有以下两种:
- 建立一个信息安全通道,保证数据传输的安全性;
- 确认网站的真实性。凡是使用 HTTPS 协议的网站,都可以通过单击浏览器地址栏的锁头标志来查看网站认证之后的真实信息,此外还可以通过 CA 机构颁发的安全签章来查询。
HTTP 和 HTTPS 协议都属于计算机网络的应用层协议,其下层是基于 TCP 协议实现的,TCP 协议属于计算机网络中的传输层协议,包括建立连接时的三次握手和断开时的四次挥手过程。
五、常见的加密方式
【1】、对称秘钥加密
客户端向服务器发送一条信息,首先客户端会采用已知的算法对信息加密,比如 MD5 加密或者 Base64 加密,接收端会加密的信息进行解密的时候需要用到秘钥,中间也会传递秘钥(加密和解密的秘钥是同一个)。秘钥在传输中间是被加密的。这种方式看起来安全,但是仍有潜在的危险。一旦被窃听,或者信息被挟持,就有可能破解秘钥,从而破解其中的信息。因此,”共享秘钥加密“ 这种方式存在安全隐患。
【2】、非对称秘钥加密
非对称秘钥使用的时候有两把锁,一把叫做 ”私有秘钥“,一把是 ”公开秘钥“。使用非对称加密的加密方式时,服务器首先告诉客户端按照自己给定的公开秘钥进行加密处理,客户端按照公开秘钥加密以后,服务器接收到信息在通过自己的私有秘钥进行加密,这样做的好处就是解密的根本不会进行传输,因此也就避免了被挟持的风险。就算公开秘钥被窃听者拿到了,他也很难机进行解密。这是因为解密过程时对离散对数求值,这可不是轻而易举就能做到的事。
但是,非对称加密也存在以下缺点:
- 如何保证接收端向发送端发出公开秘钥的时候,发送端确保接收到的是预先要发送的,而不会被挟持可能被串改的。只要是发送秘钥,就有可能有被挟持的风险;
- 非对称加密的方式效率比较低。它处理起来更为复杂,通信过程中使用就有一定的效率问题而影响通信速度;
【3】、证书秘钥加密
数字证书认证机构是客户端与服务器都可信赖的第三方机构,证书的具体传播过程如下:
服务器的开发者携带公开秘钥,向数字证书认证机构提出公开秘钥的申请。数字证书认证机构在认清申请者的身份,审核通过以后,会对开发者申请的公开秘钥做数字签名,然后分配这个已签名的公开秘钥,并将秘钥放在证书里面,绑定在一起;
服务器将这份数字证书发送给客户端,因为客户端也认可证书机构,客户端可以通过数字证书中的数字签名来验证公钥的真伪,来确保服务器传过来的公开秘钥是真实的。一般情况下,证书的数字签名是很难被伪造的,这取决于认证机构的公信力。一旦确认信息无误后,客户端就会通过公钥对报文进行加密发送,服务器接收到以后自己的秘钥进行解密。
标签:协议,01,加密,爬虫,秘钥,概述,HTTP,客户端 From: https://www.cnblogs.com/kurome/p/17743766.html