Python爬虫底层知识简介 - AI小白进阶之路

一、通讯协议

1.1 端口

  • 我们要进行数据通讯一般要经过三步:
  1. 找到对方IP。
  2. 数据要发送到指定的应用程序上。为了标识这些应用程序,所以给这些网络应用程序都用数字进行了标识。为了方便称呼这个数字,我们称之为 端口。这里的端口我们通常叫做逻辑端口
  3. 定义通讯规则。这个通讯规则我们一般称之为协议

1.2 通讯协议

  • 国际组织定义了通用的通讯协议 TCP/IP协议。
  • 所谓协议就是指计算机通信网络中计算机之间进行通信所必须共同遵守的规定和规则。
  • HTTP又叫做超文本传输协议(是一种通讯协议)。它的端口是80。
  • 我们随便打开一个网址用的https的url都是默认端口为80,一般会省略不展示,大家统一的80端口。

二、网络模型

2.1 网络模型结构

  • 数据传输的网络的模型和数据流动示意,osi模型
    Python爬虫底层知识简介 - AI小白进阶之路
  • 后期更新了新的参考模型TCP/IP参考模型
    Python爬虫底层知识简介 - AI小白进阶之路
    在TCP/IP模型中,我们用到的爬虫HTTP协议就在应用层。

2.2 HTTPS是什么

  • https = http + ssl,顾名思义,https是在http的基础上加上了SSL保护壳,信息的加密过程就是在SSL中完成的。
  • HTTPS是以安全为目标的HTTP通道,简单讲是HTTP安全版。即HTTP下加入SSL层,HTTPS的安全基础上SSL。

2.3 SSL怎么理解

  • SSL也是一个协议,主要用于web的安全传输协议。
    Python爬虫底层知识简介 - AI小白进阶之路

三、爬虫介绍

3.1 什么是爬虫

  • 简单一句话就是代替人去模拟浏览器进行网页操作

3.2 为什么要爬虫

  • 为其它程序提供数据源。如搜索引擎(百度、谷歌)、做数据分析、数据挖掘、大数据、人工智能等。

3.3 企业获取数据的方式

  1. 公司自有的平台数据
  2. 向第三方平台购买数据(推荐第三方台:百度指数、数据堂
  3. 爬虫爬取的数据

3.4 Python做爬虫的优势

  • PHP:对多线程、异步支持不太好
  • Java:代码量大,代码笨重
  • C/C++:代码量大,难以编写
  • Python:支持模块多、代码简洁、第三方库多、开发效率高(scrapy框架)

3.5 爬虫的分类

  1. 通用网络爬虫,如百度、谷歌、雅虎。
  2. 聚焦式网络爬虫,根据既定目标有选择的抓取某一特定主题内容。
  3. 增量式网络爬虫,指对下载页面采取增量式的更新和只爬取新产生的或者已经发生变化的网页爬虫。
  4. 深层次网络爬虫,指那些大部分内容不能通过静态链接获取的,隐藏在搜索表单后的,只有用户提交了一些关键词才能获的web页面,如用户注册登录才能访问的页面。