爬虫
爬虫就是通过伪装客户端获取网页并提取和保存信息的自动化程序。
分类:
- ①通用爬虫:浏览器
- ②聚焦爬虫:建立在通用爬虫的基础上,抓取页面指定数据。
爬虫的步骤:
-(1)、分析页面
①找到抓取的数据。
②找到加密参数的生成位置
③构建加密参数
-(2)、获取数据
数据:
①动态数据:API
②静态数据:源代码和HTML代码。
请求和响应:
我找你要,你给我给。
api接口当中的数据(json字符串)
-(3)、解析数据
取其精华去其糟粕。
-(4)、保存数据
保存在电脑当中
保存在数据库中
协议
- http:计算机之间也是需要一种规则,保障之间信息的有效交流,这就是HTTP协议
- https:以安全为目标的http通道,加入了SSL层。
URL:统一资源定位符(网址)
构成:协议+域名+路径+参数
协议:常见的如http,https,ftp等,如:http://
路径:以“/”分割
参数:从“?”开始到“#”为止的部分为参数部分
请求:由客户端发往服务器,可分为四个部分:
- (1)、请求方法:用于标识请求客户端请求服务器的方法。
常见请求方法:
①get:
1、主要是负责从服务器中获取数据 2、URL中添加请求参数,显示在地址栏 3、q请求字符限制1024个字节 4、比post更高效和方便②post:
1、主要负责向服务器提交数据 2、没有大小限制 3、比get传递数据量大,安全性高
- (2)、请求网址:
URL
- (3)、请求头
用来说明服务器要使用的附加信息,请求头部由关键字、值对组成。
重要的信息,如下:
①、User-Agent:产生请求的浏览器类型,爬虫时添加此信息可伪装成浏览器;不加很容易被是识别出来。
②、referer:防盗链,页面跳转处,表明产生请求的网页来自于哪个URL,告诉服务器我是从哪个链接过来的
③、Host:请求的主机名,允许多个域名同处一个IP 地址,即虚拟主机;
④、Cookie:存储于客户端扩展字段,向同一域名的服务端发送属于该域的cookie
⑤、Accept:客户端可识别的响应内容类型列表;星号 “ * ” 用于按范围将类型分组,用 “ / ” 指示可接受全部类型,用“ type/* ”指示可接受 type 类型的所有子类型;
-(4)、请求体
一般承载的内容为post请求的表单数据,对于get请求,请求体为空。
响应:
由服务器返回给客户端,可以分为三个部分:
-(1)、响应状态码
服务器的响应状态,由三个数字组成,第一个数字表示为响应类型,常有五大类:
①、1XX: 表示服务器已接收了客户端请求,客户端可继续发送请求;
②、2XX:表示服务器已成功接收到请求并进行处理;
③、3xx:表示服务器要求客户端重定向;
④、4xx:表示客户端的请求有非法内容;
⑤、5xx:表示服务器未能正常处理客户端的请求而出现意外错误;
常见的有:200:客户端请求成功;404:资源不存在,403:拒绝提供服务。
-(2)、响应头
包含了服务器对请求的应答信息。如:Content-Type,Server,Set-Cookei等
-(3)、响应体
包含响应的正文数据,如:源代码,html代码,Json数据等。是我们需要得到的信息。
客户端和服务器的创建连接和断开连接:
- (1)、创建连接:(三次握手)
①、第一次:客户端向服务器发送:能收到吗
②、第二次:服务器向客户端发送:能,你能收到吗
③、第三次:客户端向服务器发送:ok,能。及创建成功。
- (2)、断开连接:(四次挥手)
①、第一次:客户端向服务器发送:我要断开连接了
②、第二次:服务器向客户端发送:知道了
③、第三次:服务器向客户端发送:再来消息就断了
④、第四次:客户端向服务器发送:OK,断了吧。及断开连接成功。