什么是爬虫
网络爬虫是一种计算机自动程序,它能够自动建立到WEB服务器的网络连接,访问服务器上的某个页面或网络资源,获得其的内容,并按照页面上的超链接进行更多页面的获取。
爬虫分类方法
从爬虫抓取的链接范围看,可以分为基于整个WEB的爬虫和基于局部确定范围的爬虫。
从爬虫抓取的页面内容看,可以分为无固定主题的爬虫和主题爬虫。
从爬虫的执行模式看,可以分为批量型爬虫和增量型爬虫。
从爬虫的内部功能协调方式看,可以单线程爬虫和多线程爬虫。
网络爬虫的内核技术完成一个基本的采集流程
爬行策略
深度优先策略:
宽度优先策略:
爬虫陷入
主题爬虫
也称为聚焦爬虫(Focused Crawler),从功能上看,它主要爬行与某些预先设定好的主题的相关WEB页面,各种面向特定领域的爬虫,如旅游领域爬虫、财经新闻爬虫等,都是属于这类。
3.
信息提取方面的基本思路一般包括:
(1)分析所处理的HTML源文件的特征
由于HTML文件中包含了大量的标记(Tag),这些标记描述了Web浏览器在页面上如何显示文字、图形等内容,因此,需要事先分析所要提取的信息内容所有具有的标记特征;
(2) 先根据某种特征在HTML源文件中定位要提取的内容所在的块(Block);
(3)在Block内再利用块内特征提取具体内容。
挑战性问题:
一是页面动态加载内容的增多,二是多媒体内容的增加。此外还有部分站点为了防止内容信息被采集或者自身的技术升级,也会导致其页面结构改变等情况,对采集者造成困扰,从而要求Web内容提取技术不断地升级。
分布式文件系统的结构
主-从:分布式文件系统在物理结构上是由计算机集群中的多个节点构成的,这些节点分为两类,一类叫“主节点”(Master Node)或者也被称为“名称结点”(NameNode),另一类叫“从节点”(Slave Node)或者也被称为“数据节点”(DataNode),HDFS采用了主从(Master/Slave)结构模型,一个HDFS集群包括一个名称节点(NameNode)和若干个数据节点(DataNode)
名称节点(NameNode)负责管理分布式文件系统的命名空间(Namespace),保存了两个核心的数据结构,即FsImage和EditLog
数据节点是分布式文件系统HDFS的工作节点,负责数据的存储和读取,会根据客户端或者是名称节点的调度来进行数据的存储和检索,并且向名称节点定期发送自己所存储的块的列表,每个数据节点中的数据会被保存在各自节点的本地Linux文件系统中
HDFS要实现以下目标:
●兼容廉价的硬件设备
●流数据读写
●大数据集
●简单的文件模型
●强大的跨平台兼容性
HDFS特殊的设计,在实现上述优良特性的同时,也使得自身具有一些应用局限性,主要包括以下几个方面:
●不适合低延迟数据访问
●无法高效存储大量小文件
●不支持多用户写入及任意修改文件
通信协议
所有的HDFS通信协议都是构建在TCP/IP协议基础之上的
名称节点和数据节点之间则使用数据节点协议进行交互
客户端通过一个可配置的端口向名称节点主动发起TCP连接,并使用客户端协议与名称节点进行交互
HDFS存储原理
冗余数据保存
数据存取策略
数据错误与恢复
5.
通常,NoSQL数据库具有以下几个特点:
(1)灵活的可扩展性
(2)灵活的数据模型
(3)与云计算紧密融合
NoSQL与关系数据库的比较
(1)关系数据库
优势:以完善的关系代数理论作为基础,有严格的标准,支持事务ACID四性,借助索引机制可以实现高效的查询,技术成熟,有专业公司的技术支持
劣势:可扩展性较差,无法较好支持海量数据存储,数据模型过于死板、无法较好支持Web2.0应用,事务机制影响了系统的整体性能等
(2)NoSQL数据库
优势:可以支持超大规模数据存储,灵活的数据模型可以很好地支持Web2.0应用,具有强大的横向扩展能力等
劣势:缺乏数学理论基础,复杂查询性能不高,大都不能实现事务强一致性,很难实现数据完整性,技术尚不成熟,缺乏专业团队的技术支持,维护较困难等
NoSQL的四大类型
键值数据库(值可以是任意类型的数据)
列族数据库(分布式数据存储与管理)
文档数据库(存储、索引并管理面向文档的数据或者类似的半结构化数据)
图形数据库(灵活性好,支持复杂的图形算法,可用于构建复杂的关系图谱)
CAP理论
一个分布式系统不可能同时满足一致性、可用性和分区容忍性这三个需求,最多只能同时满足其中两个
一个数据库事务具有ACID四性:原子性,一致性,隔离性,持久性
BASE的基本含义是 基本可用、软状态和最终一致性
云数据库
是部署和虚拟化在云计算环境中的数据库。云数据库是在云计算的大背景下发展起来的一种新兴的共享基础架构的方法,它极大地增强了数据库的存储能力,消除了人员、硬件、软件的重复配置,让软、硬件升级变得更加容易。
云数据库具有高可扩展性、高可用性、采用多租形式和支持资源有效分发等特点。
(1)动态可扩展
(2)高可用性
(3)较低的使用代价
(4)易用性
(5)高性能
(6)免维护
(7)安全
6.大数据计算技术MapReduce
采用“分而治之”策略,一个存储在分布式文件系统中的大规模数据集,会被切分成许多独立的分片(split),这些分片可以被多个Map任务并行处理
MapReduce体系结构主要由四个部分组成,分别是:Client、JobTracker、TaskTracker以及Task
Shuffle过程
Reduce任务通过RPC向JobTracker询问Map任务是否已经完成,若完成,则领取数据
Reduce领取数据先放入缓存,来自不同Map机器,先归并,再合并,写入磁盘
多个溢写文件归并成一个或多个大文件,文件中的键值对是排序的
当数据很少时,不需要溢写到磁盘,直接在缓存中归并,然后输出给Reduce
7.
流计算:实时获取来自不同数据源的海量数据,经过实时分析处理,获得有价值的信息
基本理念,即数据的价值随着时间的流逝而降低
流计算的处理流程一般包含三个阶段:数据实时采集、数据实时计算、实时查询服务
Hadoop擅长批处理,不适合流计算
8.
9.
词汇切分的两大类方法:基于词典的分词和基于统计的分词
10.
WordNet是一个在线的英语词汇数据库,而HowNet是一个以汉语和英语的词语所代表的概念为描述对象,以揭示概念与概念之间以及概念所具有的属性之间的关系为基本内容的常识知识库。在内部结构上,WordNet是一种层次结构,而HowNet是一种网状结构。
两者都是自上而下的建设方法,描述词语的上下位关系,进行语义排歧、语义分析、语料库语音标注、信息过滤和分类、机器翻译等方面。
词向量(Word Embedding),就是采用向量来表示词。它是一种基于语义的词汇表示方法,是最近若干年发展起来的一种词汇语义表示和处理方法。
词向量的构造方式有两种,即One-hot Representation和Distributed Representation。
12.
聚类是一个将数据集划分为若干组(class)或类(cluster)的过程,并使得同一个组内的数据对象具有较高的相似度;而不同组中的数据对象是不相似的。
一个好的聚类方法将产生以下的高聚类:
最大化类内的相似性;
最小化类间的相似性。
14.
社区的定义:同一社区内的结点关系紧密,而不同社区间的结点关系稀疏
16.
可视化的作用:观测、跟踪数据;分析数据;辅助理解数据;增强数据吸引力
17.
数据安全:是一种主动的包含措施,包括数据本身的安全和数据防护的安全