学习时间:9:00——11:00 16:00——18:00
爬虫:通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程。
爬虫的价值体现在实际应用和就业两方面。
爬虫在法律中是不被禁止的,但是具有违法的风险,好比一把锋利的水果刀,可以用来削苹果,同样也可以进行暴力。所以爬虫可以分为善意爬虫和恶意爬虫。
爬虫所带来的风险可以体现在如下两方面:
- 爬虫干扰了被访问网站的正常运营
- 爬虫抓去了受到法律保护的特定类型的数据或信息
如何在使用或编写爬虫的构成中避免进入局子的厄运呢?
- 时常优化自己的程序,避免干扰被访问网站的正常运行
- 在使用或传播爬取到的数据时,需要审查抓取到的内容,若发现了涉及到用户隐私或商业机密等敏感内容就需要及时停止
爬虫在使用场景中的分类:
通用爬虫:爬取系统重要组成的部分,抓取的是互联网当中的一整张页面数据。
聚焦爬虫:建立在通用爬虫的基础之上,抓取的是页面中特定的局部内容。
增量式爬虫:检测网站中数据更新的情况,只会抓取网站中最新更新出来的数据。
反爬机制:门户网站,可以通过制定相应的策略或者技术手段,防止爬虫程序进行网站数据的爬取。
反反爬策略:爬虫程序可以通过制定相关的策略或者技术手段,破解门户网站中具备的反爬机制,从而可以获取门户网站信息。
robots.txt协议:君子协议。规定了网站中哪些数据可以被爬取,哪些数据不可以被爬取。可在任何网站的后面加上robots.txt来查看,allow是可以爬取,disallow是不可爬取。
http协议:服务器和客户端之间进行数据交互的一种形式。例如说人与人之间进行沟通用的是语言,亦或者在智取威虎山当中的黑话。
常用的请求头信息:
- user-agent:请求载体的身份标识,会显示出我所们用的浏览器和电脑的版本位数等等的信息(除了可以使用浏览器来爬取之外也可以使用代码来伪装一个身份标识)
- Connection:请求完毕后,是断开连接还是保持连接。
常用响应头信息:Content-Type:服务器响应回客户端的数据类型
https协议:安全的超文本传输协议,相比于http而言更加地安全,是进行数据加密的。
加密方式:
- 对称秘钥加密:相当于在客户端向服务器发送信息的时候,对信息进行加锁,同时会产生一个密钥,然后发送过程中将密钥和加密的文件同时传过服务器。这样有一个缺点就是在进行密钥和密文传输的过程中有可能会被第三方拦截工具拦截从而暴露。
- 非对称密钥加密:可以解决对称秘钥加密的安全隐患。首先让服务器端设定一个加密方式发送给客户端,客户端在拿到了该加密方式之后,针对该加密方式设定出一个密文发给服务器(公钥),由于密钥的制定者是服务器,因此服务器在拿到密文之后就可以根据自己所指定的密钥进行解密(私钥)。这样做的缺点有两个,一个是效率比较低,另一点是无法保证在服务器端在传输给客户端密钥的时候该密钥不会被拦截并篡改,并在篡改之后将密钥发给客户端。
- 证书秘钥加密(https):在针对非对称密钥加密的缺点上进行改良,同时在服务器端与客户端在足够信任的基础上诞生了证书密钥机构,理解为将公钥先发给我证书认购机构,认购机构对其进行签名后将证书发送给客户端,客户端只有看到签名后才会认为这是从服务器端所发来的。