爬虫前导知识
1 认识爬虫
1.1 爬虫的概念
(1)专业定义:网络爬虫是伪装成客户端与服务器进行数据交互的程序。
(2)可以干什么?自动批量下载网络资源,如图片、音频、视频等各种数据。
(3)搜索引擎其实都是大型的网络爬虫
1.2 爬虫的分类
(1)通用爬虫:搜索引擎的重要部分,需要遵守robots协议,该协议规定了哪些页面可以被抓取,哪些不能被抓取。
(2)聚焦爬虫:面向特定需求的爬虫,只爬取与需求有关的数据
1.3 爬虫的应用
(1)数据分析
(2)商业领域
2 网络协议
2.1 robots协议
可以屏蔽一些网站中比较大的文件和死链接
聚焦爬虫不受该协议的限制
2.2 HTTP协议
超文本传输协议,是一个应用层面向对象的协议。
基于TCP/IP通讯协议之上用来传输HTML和图片文件的应用协议
有简洁、快速的优点
请求方法:POST,GET
路径:URL
2.3 HTTPS协议
通过传输加密和身份认证提高安全性
HTTP+SSL=HTTPS
设计目的:数据保密、完整、安全
2.4 HTTP_URL
URL:统一资源标识符
URL=协议/域名/路径/参数
3 HTTP报文
用于HTTP协议交互的信息,请求端的HTTP报文叫做请求报文,响应端的叫做响应报文,报文本身是多行数据构成的字符串文本。
3.1 请求报文
3.1.1请求行
由请求方法字段、URL字段、HTTP协议版本字段三个字段组成,用空格分隔。
请求方法:
GET请求:从指定的资源请求数据,用于获取数据,一般用于搜索排序和筛选之类的操作
POST请求:向指定的资源提交要被处理的数据,用于将数据发送给服务器,一般用于修改和写入数据
区别:
GET请求的数据会附在URL之后,以?分割URL和传输数据,多个参数用&连接
POST请求把提交的数据放置在是HTTP包的包体中
GET提交的数据会在地址栏显示,POST则不会
3.1.2 请求头部
由关键字 :值对组成,每队一行,
3.1.2 空行
最后一个请求头之后是一个空行,发送回车和换行符
3.1.3 请求数据
GET方法中不使用
POST方法适用于需要客户填写表单的场合
3.2 响应报文
3.2.1 状态行
由三位数字组成,第一个数字定义响应的类别,且有五种可能取值
- 1xx:表示服务器已接收了客户端请求,客户端可以继续发送请求
- 2xx:表示服务器已成功接收到请求并进行处理
- 3xx:表示服务器要求客户端重定向
- 4xx:表示客户端的请求有非法内容
- 5xx:表示服务器未能正常处理客户端的请求而出现意外错误
3.2.2 消息报头
3.2.3 响应正文
4 会话技术
4.1 什么是会话?
- 会话开始:客户端和服务端建立连接
- 会话过程:可以有多次请求和响应
- 会话结束:关闭浏览器,会话结束
4.2 什么是会话技术?
用于存储会话过程中的一些数据的技术,用于在同一会话内部共享数据的技术
会话技术是存储数据的技术 在一个会话内多次请求之间,数据要共享 在不同会话之间,数据应该相互独立,互不干扰
4.3 Cookie与Session
4.3.1 Cookie
客户端的会话技术,会话数据存储在客户端浏览器
不安全,只能存储字符串
服务器压力小
可以理解为一个凭证,用来辨别用户的身份
Cookie是有有效期的
4.3.2 Session
session依赖于cookie,当页面没有显示禁止session的时候,在打开第一次请求的时候,服务器会自动为其创建一个session,并赋予一个sessionID,发送客户端的浏览器。以后客户端接着请求本页面中其他资源的时候,会自动在请求头上添加。