1. 端口
计算机“端口”是英文port的义译,是计算机与外界通讯交流的出口。其中硬件领域的端口又称接口,如:USB端口、串行端口等。软件领域的端口一般指网络中面向连接服务和无连接服务的通信协议端口,是一种抽象的软件结构,包括一些数据结构和I/O(基本输入输出)缓冲区。
此处讨论的软件层面的端口,一个通俗的理解是:每一个应用程序都有其独立的标识,这个标识就称为端口,例如QQ应用的端口是3000,微信应用的端口是2000。
进行数据通信的步骤:
- 找到对方的IP地址;
- 数据要发送到指定的应用程序,这些应用程序用数字做了标识,也称为端口(一般称为逻辑端口);
- 定义通信规则,一般称之为协议。
2. 通讯协议
国际组织定义了通信协议——TCP/IP。
所谓协议就是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则。
查看自己电脑的通信协议:
-
打开网络设置
-
点击网络和共享中心
-
点击电脑连接的网络
-
点击属性,即可看到网络协议
-
HTTP又叫做超文本传输协议,它的端口号是80。
3. 网络模型
数据传输过程中,发送端从应用层开始到物理层,每层都对数据进行一次封装;类似地,接收端收到数据时,从物理层到应用层,每层都对数据进行一次解封。
TCP/IP参考模型是一个四层协议系统,自底而上分别是数据链路层、网络层、传输层和应用层。每一层完成不同的功能,且通过若干协议来实现,上层协议使用下层协议提供的服务。
HTTP协议在参考模型的应用层。另一种常见的HTTPS = HTTP + SSL,数据加密过程SSL也是在应用层,端口号是443,它是HTTP的安全版本。
4. HTTP的请求和响应
HTTP通信由两部分组成: 客户端请求消息与服务器响应消息
通过谷歌浏览器(客户端),在百度搜索引擎上搜索一个关键词,实际上是向百度服务器发起了一个请求。百度服务器响应了我们的请求,返还搜索的结果。
上图中红框内容简介:
- General 全部的
Request URL:请求的地址
Request Mdthod:请求的方式,主要为Get和Post两种方法
Status Code:状态码 - Response Headers 服务器的响应
- Request Headers 服务器的请求
host
Connection keep-alive
User-agent
Referer
Cookie - Query String Parameters 参数信息
5. 爬虫简介
- 什么是爬虫?
简单理解:代替人去模拟浏览器进行网页操作。最好让被爬取的网站分不清是人在操作,还是程序在访问。 - 为什么需要爬虫?
- 为其它的程序提供数据源;
- 进行后续的数据分析提供支持;
- AI 人工智能(智能家居、无人驾驶、智能语音、智能导航、人脸识别…),上述技术的发展需要大量的数据作为支撑。
- PC端的互联网时代(2010年之前,局域网:CS、红警;单机游戏:大富翁;宽带:QQ、满天飞;光纤:传奇、魔力宝贝… ) —> 2010 - 2015 (3G、4G),移动端互联网 —>2015-至今,大数据的互联网时期—> 未来,AI 人工智能时代
6. 企业获取数据的方式
- 公司自有的数据
- 第三方平台购买的数据 (百度指数、数据堂)
百度指数:
上图显示Python(蓝色)、Java(绿色)、C(橙色)三个关键词的搜索指数。
数据堂:
数据堂的数据是收费的。
- 爬虫爬取的数据
7. Python做爬虫的优势
PHP:对多线程、异步支持不太好
Java/C、C++:代码量大,难以编写
Python:支持模块多,代码简洁、开发效率高(scrapy框架)