# 移动互联网
# 1 概述
# 1.1 移动互联网简介
# 什么是移动互联网
移动互联网MI(Mobile Internet) 就是将 移动通信 和 互联网 二者结合起来,成为一体。是指互联网的技术、平台、商业模式和应用与移动通信技术结合并实践的活动的总称。
# 移动互联网的组成
网络,应用,终端
# 移动互联网的特点
- 高便携性: 移动互联网的沟通与资讯的获取远比PC设备方便。
- 终端移动性: 移动性使得用户可以在移动状态下接入和使用互联网服务
- 业务与终端、网络的强关联性 : 由于移动互联网业务受到了网络及终端能力的限制,因此,其业务内容和形式也需要适合特定的网络技术规格和终端类型。
- 4)业务使用的私密性: 互联网下,PC端系统的用户信息是可以被搜集的。而移动通讯用户 上网显然是不需要自己设备上的信息给他人知道甚至共享,如手机短信 等;在使用移动互联网业务时,所使用的内容和服务更私密,如手机支 付业务等。
- 5)局限性 : 移动互联网也具有自身的不足之处,主要体现在网络能力和终端能力两方面的限制。在网络能力方面,受到无线网络传输环境、技术能力等因素限制; 在终端能力方面,受到终端大小、处理能力、电池容量等的限制。
# 1.2 移动互联网的发展过程
# web发展简史
- Web1.0是Web的“ 可读取 ”阶段,用户之间的互动是有限的,就像早期的桌面网页;
- Web2.0是Web的“ 可交互 ”阶段,用户可以与网站或其他人进行 交互和互动,就是如今的社交网络、移动网络、云计算等;
- Web3.0是网络的“ 可执行 ”阶段,计算机可以像人类一样解释信 息,然后为用户生成个性化内容,如今正在大力发展的人工智能,边缘计算等。
# web应用开发技术
前端开发技术:HTML1、CSS3、JavaScript等
移动app开发:android、iOS
搜索引擎技术
自然语言处理技术
人工智能技术
移动网络
- 蜂窝网
- 蜂窝技术分类
- 宏蜂窝技术: 宏蜂窝每小区的覆盖半径大多为1~25km,基站天线做得尽可能高。
- 微蜂窝技术 : 微蜂窝小区的覆盖半径为30~300m,基站天线低于屋顶高度,传播主要沿着街道的视线进行,信号在楼顶的泄漏小。
- 智能蜂窝技术 : 智能蜂窝是指基站采用具有高分辨阵列信号处理能力的自适应天线系统,智能监测移动台的位置,并以一定的方式将确定的信号功率 传递给移动台的蜂窝小区。
- 3G
- 4G
- 当前,被ITU所承认主流技术: LTE ( Long Term Evolution,长期演进) LTE-A ( LTE-Advanced )。
- 5G
- 移动互联网 和 物联网 是下一代移动通信系统发展的两大主要驱动力
- 移动IP技术
- 移动IP的功能实体
移动节点、本地代理、外地代理
- 移动IP的基本操作
代理发现、注册、分组路由、注销
- IPv4技术的不足
地址资源匮乏、路由表越来越庞大、地址分 配烦琐、发展受限
- IPv6
IPv6的地址及配置、IPv6的多终点传输支持、IPv6移动性支 持、IPv6对服务质量(QoS)的支持、IPv6对安全性的支持。
- 蜂窝技术分类
- 无线局域网
- 无线广域网(Wierless Wide Area Network,WWAN):
主要是指通过移动通信卫星进行的数据通信,其覆盖范围最大。代表技术有3G及未来的4G等,一般数据传输速率在2Mb/s以上。
- 无线城域网(Wierless Metorpolitan Area Network,WMAN):
主要是通过移动电话或车载装置进行的移动数据通信,可以覆盖城市中大部分的地区。代表技术是2002年提出的IEEE 802.20标准,主要针对移 动宽带无线接入(Mobile Broadband Wireless Access,MBWA)技术
- 无线局域网(Wireless Local Area Netwok,WLAN):
一般用于区域间的无线通信,其覆盖范围较小。 代表技术是IEEE 802.11系列,以及HomeRF技术。 数据传输速率为11~56Mb/s之间,甚至更高。
- 无线个域网(Wierless Personal Area Network,WPAN):
无线传输距离一般在10m左右,典型的技术是IEEE 802.15(WPAN)、Bluetooth、ZigBee技术,数据传输速率在10Mb/s以上,无线连接距离在10m左右。
- 无线体域网(WBAN):
以无线医疗监控和娱乐、军事应用为代表,主要指附着在人体身上或植入人体内部的传感器之间的通信。 从定义来看,WBAN和WPAN有很大关系,但是它的通信距离更短,通常 来说为0~2m。因此无线体域网具有传输距离非常短的物理层特征。
- 无线网络的协议模型
- 不同类型 的无线网络所 重点关注 的协议 层次 是不一样的。
- 无线局域网、无线个域网和无线城域网 一般不存在路由 的问题,所以它们没有制定网络层的协议,主要采用传统的网络层的IP协议
- 无线网络存在 共享访问介质 的问题,所以和传统有线局域网一样,MAC协议是 所有 无线网络协议的重点
- 无线频谱管理的复杂性,也导致无线网络 物理层协议 也是 一个重点。
- 对于 传输层协议 来说,虽然大多数TCP都已经小心地作了优 化,而优化的基础是一些假设条件对于有线网络是成立的,但对于无线网络却并不成立。
- 应用层的协议 并不是无线网络的重点,只要支持传统的应用层协议就可以了,当然对于一些特殊的网络和特殊应用,可对其进行一定规范化,如无线个域网的 蓝牙协议 。
- 个人局域网
- 蜂窝网
# 2 搜索引擎技术
# 2.1 搜索引擎概述
- 什么是搜索引擎
根据用户需求与一定算法,运用特定策略从互联网检索出定制信息反馈给用户的一门检索技术。(百度)
- 搜索引擎的原理(分为三步)
- 蜘蛛 在互联网上爬行和 抓取网页信息 ,并存入原始网页数据库;
- 对收集回来的网页 进行分析 , 提取相关网页信息 (包括网页所在 URL 、 编码类型 、 页面内容包含的关键词 、 关键词位置 、 生成时 间、大小、与其它网页的链接关系 等),根据一定的相关度算法进行大量复杂计算,得到每一个网页针对页面内容中及超链中每一个关键词的相关度(或重要性),然后用这些相关信息 建立网页索引数据库
- 根据用户输入的关键词, 快速找到相关文档 ,并对找到的结果进 行排序,并将查询结果返回给用户
- 搜索引擎特点
- 搜索引擎并不真正搜索互联网,它搜索的实际上是预先整理好的 网页索引数据库。
- 真正意义上的搜索引擎,通常指的是收集了Internet上几千万到几十亿个网页并对网页中的每一个词(即关键词)进行 索引 ,建立索引数据库的全文搜索引擎。
- 当用户查找某个关键词的时候,所有在页面内容中包含了该关键词的网页都将作为搜索结果被搜出来。
- 搜索引擎的发展阶段
- 第一代搜索引擎特点: 集中式检索
- 第二代搜索引擎特点: 分布式搜索 ,可以 关键词 查询
- 第三代搜索引擎特点:个性化,专业化,数据库大,代表Google
- 第四代搜索引擎特点: 信息检索 到 信息推送
- 移动搜索
移动搜索是指以移动设备为终端,进行对普遍互联网的搜 索,从而实现高速、准确的获取信息资源。
- 搜索引擎的主要技术
- 信息收集:人工和自动
- 存储技术
- 信息预处理技术
- 信息索引技术
# 2.2 网络爬虫技术
# 2.2.1 概述
- 什么是网络爬虫?
网络爬虫是一种通过既定 规则(网络爬虫算法) ,能够 自动提取 网页信息 的程序:
- –它能够自动建立到WEB服务器的网络连接,访问服务器上的某个Web页面或网络资源,获得其内容,并按照页面上的超链接进行更多页面的获取
- 它可为搜索引擎从Internet网上下载网页,是搜索引擎的重要组成部分。
- 通用网络爬虫的基本流程
- 传统爬虫的基本流程
# 2.2.2 简单网络爬虫
# 2.2.2.1 认识HTTP
- 浏览器加载网页过程
- HTTP和HTTPS协议
- web服务器的工作原理
- request请求方式 8种
- get是从服务器上获取信息
请求的数据会附加在URL之后, 以?分割 URL和传输数据,多个参数 用&连接 。URL的编码格式采用的是ASCII编码,而不是unicode, 即是说所有的非ASCII字符都要编码之后再传输。
- post是向服务器传送数据
POST请求会把请求的数据放置在HTTP请求包的 包体 中,需要构造一个表单,通过表单提交得到POST请求。
- GET请求的数据会暴露(明文)在地址栏中,而POST请求则不会。
- get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。
- Request--请求头包括:User-Agent、Host、Cookies等信息
Accept请求头表示可接受的响应内容 User-Agent属性表示客户端的身份标识字符串。 Cookie是请求报文中可用的属性,也是客户端最重要的请求头。
- Response--响应头
- 状态保持技术
- HTTP协议本身是 无状态 的
- 两种状态保持技术就是 Cookie 和 Session 。
- cookie
- Cookie是由 服务端 生成,并在客户端进行保存和读取的一种信息,Cookie通常以 文件形式 保存在用户端
- Session
- Session是另一种常见的在客户端与服务器之间 保持状态 的机制。
- HTTP状态码
# 2.2.2.2 简单爬虫框架
- 包括: 爬虫调度端,模块URL管理器,网页下载器,网页解析器
- python将互联网上URL对应的网页下载到本地的工具是 urllib 和 requests
urllib会断开连接,requests不会断开连接
- 正则表达式 处理是解析数据的一种重要方法
# 2.2.2.3 实现HTTP请求---URLLib
- urllib模块是Python自带的网络请求模块,无须安装,导入即可使用
import urllib.request
- URLLIB:含有四个模块的、用于处理URL的包– urllib.request:
- 请求模块,模拟HTTP请求,打开和读取URL– urllib.error:
- 异常处理模块,如果在发送网络请求时出现了错误,可以捕获异常进行异常的有效处理– urllib.parse:
- 工具模块,提供URL解析处理方法– urllib.robotparser:
- robot.txt解析模块,判断网站是否可爬
- URLLib—urlopen
- 用于实现最基本的HTTP请求,然后接收服务端所返回的响应数据。格式: urllib.request.urlopen(url, data[, proxies])
1: url : 表示远程数据的路径;– 2: Data : 该参数默认值为None,通过该参数确认请求方式,如果是None,那么表示请求方式为GET,否则请求方式为POST。在发送POST请求时,参数data需要以字典形式的数据作为参数值,并且需要将字典类型的参数值转换为字节类型的数据才可以实现POST请求。 3:proxies用于设置代理。
- 其他函数主要包括:
- – urlretrieve(url,filename) :• 一次性将某网页直接爬到本地存储
- – urlcleanup() : 将urlretrieve产生的缓存清除掉
- 超时设置
- 使用timeout参数
- 爬虫的异常处理
- urllib模块中的urllib.error子模块包含了 URLError与HTTPError 两个比较重要的异常类。
- HTTPError是URLError的子类 ,主要用于处理HTTP请求所出现的异常
- HTTPError有异常状态码与异常原因,URLError没有异常状态码
URLError里只有一个属性:reason,即抓异常的时候只能打印错误信息, HTTPError里有三个属性:code、reason、headers,即抓异常的时候可以获得code、reson、headers三个信息
- 爬虫的浏览器伪装技术
- 使用 urllib.request.build_opener() 进行,或 使用 urllib.request.Request() 下的 add_header() 实现浏览器的模拟。
- urllib3简介
- urllib3是一个功能强大,条理清晰,用于HTTP客户端的Python库,许多Python的原生系统已经开始使用urllib3。
# 2.2.2.4 实现HTTP请求---requests
- requests
# 2.2.2.5 解析网页---正则表达式
- 网页数据解析
- Python中提供了多种解析网页数据的技术,包括 正则表达式、XPath、Beautiful Soup、JSONPath。
- 正则表达式 是一种 文本模式。 缺点是只适合匹配文本的 字面意义 ,而不适合匹配文本意义。
- XPath 用于从HTML或XML格式的数据中提取所需的数据,适合处理 层次结构 比较明显的数据
- Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库
- JSONPath 的作用类似XPath,它也是以表达式的方式解析数据的,但 只能 解析 JSON格式 的数据
- 若要解析 纯文本 ,则可以选择 正则表达式 ;•
- 若要解析 HTML或XML 格式的数据,则可以选择 正则表达式、XPath、Beautiful Soup ;
- 若要解析 JSON格式 的数据,则可以选择 JSONPath 。
为便于开发者使用这些技术,Python提供了一些库或模块进行支持,包括re、lxml、bs4、jsonpath,其中• re模块支持正则表达式;• lxml库和bs4库支持XPath;• jsonpath模块支持JSONPath。