一、通讯协议
1.1端口
我们想要进行数据通讯分几步?
1.找到对方IP
2.数据要发送到对方指定的应用程序,需要一个标识来确定这个就是端口。
3.协议,我们传输时遵循的通讯规则,我们一般称为协议 常见的有TCP 协议和UDP协议
1.2通讯协议
- 国际组织定义了通用的通讯协议TCP/IP
- 所谓的协议就是指计算机网络中两台相互通讯的计算机之间遵的传输规则
- HTTP又叫查文本传输协议HTTP的默认端口是80
二、网络模型
- ois模型:
数据封包:物->数->网->传->会->表->应------------------->数据拆包:应->表->会->传->网->数->物
- osi参考模型与TCP/IP模型对应关系
物理层和数据链路层对应网际层 网络层对应网络层 传输层对应传输层 会话层、表示层、应用层对应应用层
2.1HTTPS是什么
-
https=http+ssl,就是在HTTP基础上加了一个SSL的保护壳,在SSL中完成数据加密
-
https,是安全版的HTTP通道
2.2 SSL怎么理解
- SSL主要用于WEB安全传输协议
它位于TCP/IP协议应用层HTTP的右下角
2.3HTTP请求与响应
HTTP通讯协议有两部分组成:客户端发送消息 与服务器相应消息
1.用户在浏览器的地主之输入URL按下回车后,浏览器会像HTTP服务器发送一个HTTP请求。
HTTP请求主要分为GET和Post两种方法
2.当我们在浏览器输⼊URL 的时候,浏览器发送⼀个 Request请求去获取 html⽂件,服务器把 Response⽂件对象发送回给浏览器。
3.浏览器分析Response中的 HTML,发现其中引⽤了很多其他⽂件,⽐如 Images⽂件,CSS⽂件,JS⽂件。 浏览器会⾃动再次发送Request去获取 图⽚,CSS⽂件,或者JS⽂件。
4.当所有的⽂件都下载成功后,⽹⻚会根据HTML语法结构,完整的显示出来了
2.4客户端的Http请求
URL只是表示资源的位置,而HTTP是用来提交和获取资源。
客户端发送HTTP请求到服务器的请求消息,包括一下格式:
请求行、请求头部、空行、请求数据
3.爬虫介绍
3.1什么是爬虫
- 代替人工去模拟浏览器进行网页操作
3.2为什么需要爬虫
- 为其他的程序提供数据
3.3企业获取数据的方式
-
1.公司自有的数据
-
2.第三方平台购买的数据
-
3.爬虫爬取的数据
3.4python做爬虫的优势
- PHP:对多线程异步支持不太好
- JAVA:代码量大,代码笨重
- C/C++:代码量大,难以编写
- python:支持模块多、代码简洁、开发效率高(scrapy框架)
3.5爬虫的分类
- 通用网络爬虫 例如百度 谷歌 雅虎等
- 聚焦网络爬虫:根据指定的目标抓取一些特定的内容
- 增量式网络爬虫:指对下载网页采取增量式的更新和只爬取新产生的或者已经发生变化的网页爬虫
- 深层次网络爬虫:是指哪些大部分内容不能通过静态连接获取的、隐藏在搜索表单后的,只有用户提交一些关键词才能获得的web页面 例如 用户登录注册才能访问的页面
4.几个概念
4.1get和psot
- get:查询的参数在URL上显示出来
- post:查询参数和需要提交数据是隐藏在Form表单里的,不会在URL地址上显示出来
4.2URL:统一资源定位符
- URL:统一资源定位符
- https://new.qq.com/omn/TWF20200/TWF2020032502924000.html
- https:协议
- new.qq.com:主机名
- port端口号:80在主机名后面80端口可以省略
- /TWF20200/TWF2020032502924000.html 访问资源的路径
- #anchor:锚点用前端在做页面定位的
4.3 User-Agent ⽤户代理
- 作用:记录用户浏览器、操作系统等,为了用户更好的获取HTML页面效果
4.4Refer
- 表明当前这个请求时从哪个url过来的。一般情况下用来做反爬技术
4.5状态码
-
200 : 请求成功
-
301 : 永久重定向
-
302 : 临时重定向
-
403 : 服务器拒绝请求
-
404 : 请求失败(服务器⽆法根据客户端的请求找到资源(⽹⻚))
-
500 : 服务器内部请求
5.抓包工具
- Elements : 元素 ⽹⻚源代码,提取数据和分析数据(有些数据是经过特殊处 理的所以并不是都是准确的)
- Console : 控制台 (打印信息)
- Sources : 信息来源 (整个⽹站加载的⽂件)
- NetWork : ⽹络⼯作(信息抓包) 能够看到很多的⽹⻚请求