1. 通讯协议
1.1 端口
对数据进行通讯可以分为以下几个步骤:
- 1 . 找到对方的ip
- 2 . 将数据发送到对方指定的应用程序上,标识这些程序,称呼这些数字叫做:端口,又叫做 ‘逻辑端口’
- 3 . 定义通讯规则为 ‘协议’
1.2 通讯协议
- 1 . 国际上通用的协议是TCP/IP协议
- 2 . 协议就是计算机通信系统中两台计算机通讯需要遵守的规则或协议
- 3 . HTTP协议又叫超文本传输协议,端口号 80
2. 网络模型
2.1 模型简介
- osi参考模型:应用层-表示层-会话层-传输层-网络层-数据链路层-物理层
- 正序为数据封包,反序为数据拆包
- TCP/IP参考模型:应用层-传输层-网际层-主机至网络层
2.2 HTTPS是什么
- HTTPS=http + ssl ,就是在http协议的基础上加了一层SSL保护层,信息的加密过程就是在SSL中完成的
- https 就是以安全为目标的HTTP通道,HTTPS的安全基础是SSL
2.3 SSL是什么
- SSL 也是一个协议主要用于web的安全传输
2.4 http请求与响应
HTTP通信由两部分组成 客户端请求消息 服务端响应消息
- 1 . 当⽤户在浏览器的地址栏中输⼊⼀个URL并按回⻋键之后,浏览器会向HTTP服务器发送HTTP请求。HTTP请求主要分为“Get”和“Post”两种⽅法。
- 2 . 在浏览器输入百度网址的时候,浏览器发送一个Request请求去获取网址的html文件,服务器把文件response文件对象返回给浏览器
- 3 . 浏览器分析response的HTML文件,发现引用了其他文件,就会自动发送request请求获取其他文件
- 4 . 所有文件都下载完成后,网页会根据HTML语法结构,完整的显示网页
2.5 客户端的HTTP请求
- URL只是标识资源的位置,HTTP提交获取资源。HTTP请求消息包括以下格式:
- 请求行,请求头,空行,请求数据
2.6 请求方法
- HTTP 0.9:只有基本的⽂本 GET 功能。
HTTP 1.0:完善的请求/响应模型,并将协议补充完整,定义了三种请求⽅法:
GET, POST 和 HEAD⽅法。
HTTP 1.1:在 1.0 基础上进⾏更新,新增了五种请求⽅法:OPTIONS, PUT,
DELETE, TRACE 和 CONNECT ⽅法。
HTTP 2.0(未普及):请求/响应⾸部的定义基本没有改变,只是所有⾸部键
必须全部⼩写,⽽且请求⾏要独⽴为 :method、:scheme、:host、:path这些
键值对。
3. 爬虫介绍
3.1 什么是爬虫
- 爬虫就是代替人去模拟浏览器进行网页操作
3.2 为什么需要爬虫
- 为其他程序提供数据源,如搜索引擎,数据分析,大数据等
3.3 企业获取数据的方式
- 公司自有数据
- 第三方数据平台购买数据
- 爬虫爬取的数据
3.4 Python做爬虫的优势
- PHP:对多线程,异步不是很友好
- Java:代码量大,代码笨重
- C/C++:代码量大,难以编写
- Python:支持模块多,语法易于理解,开发效率高
3.5 爬虫分类
- 通用网络爬虫:例如 百度,谷歌,雅虎
- 聚焦网络爬虫:根据既定目标有选择的抓取某一特定主题内容
- 增量式网络爬虫:对下载网页采取增量式更新,只爬行新生产的或已经生产变化的指定内容
- 深层网络爬虫:大部分内容不能通过静态网页获取,隐藏在搜索表单后的,只有用户提交关键词才能获得的web网页。例如用户注册登录才能访问的网页
4. 五个概念
4.1 get和post
- get:查询参数都在URL上显示出来
- post:查询参数和需要提交的数据都是隐藏在form表单后的,不会在URL里显示出来
4.2 URL组成部分
- URL:统一资源定位符
- HTTPS:协议
- port:端口号
- 在浏览器请求一个URL,浏览器会对URL进行一个编码
4.3 User-Agent 用户代理
- 作用: 记录用户的浏览器,操作系统等,为了让用户更好的获取HTML页面效果
- User-Agent:
Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36
4.4 Refer
- 表明当前这个请求的来源,一般情况下可以用来作反爬技术
4.5 状态码
- 200:请求成功
- 301:永久重定向
- 302:临时重定向
- 403:服务器拒绝请求
- 404:请求失败(服务器无法根据客户端的请求找到资源网页)
- 500:服务器内部请求
5. 抓包工具
- Element:元素,网页源代码,提取数据,分析数据(有些数据经过特殊处理并不都是准确的)
- Console:控制台,打印信息
- Sources:信息来源(整个网站加载的文件)
- NetWork:网络工作(信息抓包),能够看到很多网页请求