爬虫 (一)

1、爬虫的概念

​ 概念:Spider(网络蜘蛛),通过互联网生的一个个的节点,获取其中的数据,然后进行分析存储

​ 爬虫的三个过程:数据的获取、数据的分析、数据的存储

​ 爬虫的分类

​ 通用爬虫:

​ 主要用于搜索引擎,百度、谷歌、360、必应等

​ 工作原理:

​ 数据的获取=>网页的分析=>数据的存储=>对数据进行过滤清洗=>通过一个检索服务给用户提供搜索的窗口(这个就是一个普通的web网站)

​ 所有引擎是如何获取数据的:

​ 1、通过百度蜘蛛爬取(百度蜘蛛掌握了整个互联网的拓扑),速度较慢

​ 2、自身角度:主动的把接口提交给百度(百度的蜘蛛就会比较快的识别到)

​ 3、百度的角度:和DNS运营商合作,把一些有价值的网站收录

​ 网站的排名规则(SEO):

​ 1、通过流量来排名,通过点击量用户量等指标

​ 2、在其他网页中设置友情链接

​ 3、竞价排名,谁给的钱多,谁排在前面

​ robots协议:

​ 搜索引擎的蜘蛛在去爬取网页的时候,首先会去读取该网站的robots.txt文件,根据文件的规定去爬取响应的内容(允许的拿走,不允许的别动),如果某个网站没有robots.txt文件,搜索引擎蜘蛛就会把网站中所有的内容爬取

​ 【注意】robots协议在做搜索引擎的时候是必须要遵守的,对于我们而言不用管

聚焦爬虫:

​ 根据客户(或者个人)的需求去定制的爬虫

​ 工作原理:

​ 三个过程

​ 1、数据的抓取

​ 技术:http协议、url处理等,框架:urllib、requests、scrapy等

​ 反爬策略:ip禁止、通过检测访问的频率来禁止ip、设置用户代理、设置验证码等 主要是阻止客户端向服务发送请求

​ 2、数据的分析

​ 技术:数据类型(html、json、xml、js等),框架:xpath、bs4、selenium+webdriver等

​ 反爬:js数据、加密数据

​ 3、数据的存储

​ 技术:数据的清洗;csv数据、txt、MySQL、redis等

​ 爬虫的核心:处理反爬机制许多网站为了保护自己的信息,会做一些反爬。爬虫最终要解决的问题就是如何解决反爬问题(所有的反爬策略最终都是可以解决的,只是时间和金钱代价的问题)

2、HTTP协议

​ 1、什么是HTTP协议?

​ 1)基于请求与响应的应用层协议,底层是TCP,传输层可靠;2)通过url来进行客户端与服务器之间的交流 3)是一种C/S(B/S)模式的协议,客户端通过url向服务器发起请求,服务器对请求进行处理然后响应 4)该协议无状态(即不保存客户的会话信息)

​ 2、http协议过程:

​ 1)创建TCP链接:客户端与服务器进行三次握手: 客户端向服务器发起一个请求是否创建链接信号、服务器回应给客户端是否建立链接、客户端向服务器发出创建链接的信号进而建立链接;三次握手以后,客户端和服务器就建立了一个数据的通路,就可以把一些应用层的数据包进行传递

​ 2)客户端向服务器发出请求:通过url把数据参数传递给服务器,请求的方式有4种,常见的是get和post

​ 请求头:请求头中包含整个请求的配置信息(决定了这次请求的的性质)

​ 请求体:就是参数

​ get请求和post请求

​ 形式上:get的请求体(参数)是拼接在url后面的,post的的请求体在url中不体现

​ 内容上:get默认限制一定的大小(不同的浏览器对url最大长度的要求不一样),post请求默认是不限制长度的(有时候web服务器会对其(上传)作限制,比如阿帕奇限制20M)

​ 3)服务端处理客户端的请求,然后把处理结果响应给客户端(通过url)

​ 4)关闭连接:TCP的四次挥手

​ 面试题:

​ 1、请您解释一下什么是http协议?

​ 2、请谈一下get和post的区别

​ 3、http协议和https协议有什么区别?

​ 4、http协议的常见状态码,及其含义?

​ 5、如何取配置https协议?

3、环境

​ windows或linux,python3.6 , pycharm(sublime), 后期(scrapy和redis数据库)Ubuntu系统

4、fiddler

​ 抓包工具

原文地址:https://www.cnblogs.com/gugubeng/p/9723874.html