爬虫必须掌握的基础知识概念
最近在学习爬虫,最开始是从网上找大佬写的代码来看,但发现即使有注释,还是存在很多自己不能理解的知识,比如User_Agent是什么东西,那些headers里面的又是什么,json格式,正则表达式等等。于是开始补充爬虫基础知识,说真的基础知识非常重要,它决定了你是否可以看懂代码的逻辑表达和深层意义.下面的一些知识我相信对于一个刚刚开始接触爬虫的小菜白来说,是必须知道的
一、什么是爬虫
爬虫是通过编写程序,模拟浏览器上网,然后去网站上抓取所需数据的过程
二、爬虫使用场景的分类
1、通用爬虫:
抓取系统的重要组成部分。抓取的是一整张页面的数据
2、聚焦爬虫:
建立在通用爬虫的基础上,抓取页面中特定的内容。
3、增量式爬虫:
检测网站中的数据更新情况。只会抓取网站中最新更新出来的数据。
三、反爬机制
顾名思义,既然有爬虫的存在,就有反爬的需要。A公司想要爬取B公司网站的数据,B公司不想让A公司爬取,那么B公司采取的行动就是反爬。通过制定相应的策略或者技术手段,防止爬虫程序进行网站数据的爬取
四、反反爬策略
听着有些绕口,但还是很好理解的。B公司制定了相应的策略或者技术手段,防止A公司的爬虫程序进入B公司网站爬取数据,A公司说:不行!我就要爬!那么A公司就会针对B公司的反爬机制,制定反反爬策略,从而破解B公司网站的反爬机制,获取网站数据
五、robots.txt协议
这是个君子协议,规定了网站中哪些数据可以爬取,哪些数据不能爬取。在网址最后加上robots.txt,就可以看到该协议
可以看到,disallow标签后的数据是不可以爬取的(爬了进局子喝茶)
六、http协议
服务器和客户端进行数据交互的一种形式
七、常用的请求头信息
User-Agent : 请求载体的身份标识,也是一种伪装(UA伪装)。前面说到网站会有反爬机制,当它发现请求者不是浏览器,就会认为是爬虫在访问网站,那么反爬机制的运行可能会让你无法爬取到所需要的数据,User-Agent的作用就是将爬虫访问伪装成浏览器访问,这样就不会发现你是爬虫,这时你就可以爬取所需要的信息。
Connection : 请求完毕后,是断开还是保持连接
八、https协议
与http协议唯一的区别就是,这是一个安全的超文本传输协议。s的意思是security(安全)
九、http&https的加密方式
1、对称密钥加密
你有一个保险箱和一把钥匙,对称密钥加密就是你在客户端用钥匙把保险箱锁起来,将保险箱和钥匙一起转移到服务器,再由服务器开箱解锁
2、非对称密钥加密
一个保险箱有两把锁,一把叫”私有密钥“、一把叫“公有密钥”,非对称加密就是服务器给你发一把公有钥匙,你在客户端用公有钥匙把保险箱锁起来,将保险箱转运到服务器端,服务器再用自己的私有钥匙和发给你的公有钥匙(服务器自己肯定有一把备份公钥)打开保险箱
3、证书密钥加密
服务器给你发的公有钥匙在运输途中很可能被盗窃和掉包,这样你可能会用假钥匙来锁保险箱,那么证书密钥加密的作用就是来保证,你客户端拿到的这把钥匙肯定是服务器发过来的,因为我派了十万军队运输确保万无一失,送到你手里的肯定是没被动过手脚的钥匙
以上就是我现阶段学习爬虫时觉得比较重要的知识点,如果有不对的地方也欢迎大家指正,随着学习的深入也会继续补充