数据技术应用概论
第一章 绪论
数据素质培养意义
数据技术
数据科学应用体系框架
第二章 计算机信息系统
计算机信息系统的构成
计算机信息系统技术路线
第三章 抽样技术
抽样技术概述
网络调查和社会调查
抽样学习
抽样技术的基本概念
第四章 网络爬虫与文本数据生成
网络爬虫概述
网络爬虫技术操作
文本数据生成
第五章 数据库技术
数据库技术概述
数据库系统开发
关系数据库
数据仓库
第六章 SQL语言
SQL概述
SQL关系定义
SQL查询基本结构
数据库修改
视图
第七章 数据预处理技术
数据预处理概述
数据清理
数据集成
数据规约
数据变换
第八章 回归模型
回归模型的基础知识
最小二乘法
其他常用回归模型
第九章 Logistic建模技术
基础知识
梯度上升算法
第十章 关联规则挖掘
关联规则挖掘的基础知识
关联规则挖掘的 Apriori 算法
其它常用关联规则挖掘算法
第十一章 决策树分类规则
决策树分类规则的基础知识
决策树分类规则挖掘的ID3算法
几种常用的决策树
第十二章 K-平均聚类
基础知识
基于划分的K‐平均聚类算法
其他常用的聚类
第十三章 神经网络模型
神经网络模型的基础知识
误差逆传播算法
其他常用的神经网络算法
第十四章 支持向量机
支持向量机的基础知识
支持向量机的SMO算法
其他常用的支持向量机算法
第十五章 集成学习算法
集成学习算法的基础知识
随机森林算法
其他常用的集成学习算法
第十六章 数据可视化
数据可视化的基础知识
可视化设计基础
数据可视化工具
-
+
首页
网络爬虫概述
## 4.1 网络爬虫概述 1. 网络爬虫发展初期主要应用于搜索引警。爬虫通常用于高效的下载网页到本地形成快照,便于用户通过搜索引警快速定位到需要查找的内容。 2. 在网络数据猛增以及大数据研究推动下,爬虫程序可从开放互联网网页中快速获取相关数据。 3. 网络爬虫成为获取数据的一个重要手段。构成主题数据生成知识的重要组成部分,是数据应用不可或缺的基础。 ### 4.1.1 网络爬虫技术的提出与发展 ### 1.网络爬虫发展: - 分类目录阶段:1990年蒙特利尔大学生安塔吉(Emtage)等发明一种自动搜索互联网上满足特定标题文件的工具Archie。并开发出搜索网络文件名称的数据库。万维网出现后斯坦福大学生王文璨(Jerry Wang)和费罗(Filo)创建雅虎,最初开发的就是一个用于抓取Internet 书签列表和相关站点目录的搜索项目。 - 文本检索阶段:开发信息检索模型,如布尔模型、向量空间模型或概率模型,通过计算查询词(Query)与网页文本内容相关程度实现检索。1993年美国MIT大学生格雷(Gray)开发出在Web上搜索索引页面目录技术wanderer。不久spiderrobot出现。此后弗莱彻(Fletcher)开发jumpstation系统。这是一个将抓取、索引和搜索集于一体的搜索引擎。紧接着网络爬虫出现。1994年搜索引擎引入网站全文索引概念,支持用户搜索任一网页中的任一搜索词。 - 价值分析阶段:针对网络规模增大,网页爬取需要提高效率和采用效果优化策略。从推荐的链接数量判断网站的流行性和重要性;结合网页内容重要性和相似程度改善用户搜索的信息质量。Google提出一种链接分析算法PageRank,基于超链接文档每个元素权重分配方法,测度链接的相对重要性。 - 智慧搜索阶段:随着机器学习以及自然语言处理技术发展,搜索从字符串匹配向事物理解方向发展。 2012年Google推出知识图谱。实现从解释关键字符串到理解语义和意图的重大转变,增强了搜索结果的精准度。2018年Google进一步提出自然语言处理模型BERT。其具有非常好的语义识别能力,可以很好区分不同语景下的一词多义情况,极大提高了搜索引擎的搜索能力 ### 4.1.2 网络爬虫技术框架 #### 1.网络爬虫结构框架 网络爬虫一般结构框架包括两部分: - URL处理模块 URL处理模块的任务是管理要抓取的网页链接队列、链接访问校验以及为程序进程分配抓取链接。 - 网页下载模块 网页文件下载模块任务是请求目标服务器,获取返回的网页信息以及按照要求进行处理和存储。 #### 2.通常网络爬虫的工作流程: (1)首先从互联网页面中选择一部分网页资源,将这些网页的链接地址作为URL种子,并将这些链接地址放入待抓取URL队列中。 (2)爬虫从待抓URL队列中依次读取待抓网页链接地址。(3)通过DNS解析,将待抓链接地址转换为目标服务器对应的IP地址。 (4)将转换的IP地址以及网页所在路径名交给网页下载器(5)网页下载器负责请求目标服务器并将反馈页面内容进行 下载。 (6)下载下来的网页分为两步操作,一方面将其存储到页面库中,建立索引等待后续处理。另外一方面将下载网页的URL记录到已抓取URL对列中。 (7/8)通过查看已抓取URL队列就可以判断该URL是否已抓取过,如果没有抓取,就将其放入待抓取URL队列中。 如图所示:  ### 4.1.3 网络爬虫分类 #### 1、通用网络爬虫 通用网络爬虫又称全网爬虫(scalable web crawler),爬行范围覆盖互联网,主要应用于门户站点搜索引警和大型Web搜索服务提供商的数据采集。 系统结构大致可以分为页面爬行、页面分析、链接过滤、页面数据库、URL队列、初始 URL集合等模块。 - 通用网络爬虫的爬行范围广,要求具有较高的爬行效率和较大的存储空间 - 通用网络爬虫具有搜索主题广泛的优势。 #### 2、聚焦网络爬虫(focused crawler) 聚焦网络爬虫又称主题网络爬虫(topical crawler),指针对预设主题的网页爬取技术。聚焦爬虫只爬行与预定主题相关页面 - 节省网络和硬件资源,待保存页面的更新频率较高。 - 通过增加链接评价及内容评价模块,实施有针对性的URL搜索及其对网页内容分析和过滤等策略,可以较好满足特定领域的数据获取需求。 `目前流行三类内容评价方法:` ①基于内容的启发式方法,通过Web页面文本内容、链接字符串、网页中可点击跳转的锚点文字(Anchor Texts)等内容信息的分析评价。 ②基于Web超链图的评价方法,利用引文分析理论将Web网页超链接作为节点,构建出节点与节点连接的有向图结构,用于评价链接和内容。 ③基于分类器的方法,主要是针对文本内容难以精确的描述用户提出的搜索主题,以及Web超链图分析的低效率问题,构建基于主题信息分类器的聚焦网络爬虫技术 #### 3、增量式网络爬虫(Incremental Web Crawler 增量式网络爬虫采取下载网页增量更新或只爬行新产生的或者发生变化网页的爬虫技术。 - 可有效减少数据下载量,及时更新爬行网页提高效率与减少存储空间的优势。 - 增加了爬行算法复杂度和实现难度。 常用策略: ①`统一更新法`。以固定频率更新访问网页 ②`单点更新法`。根据单个网页改变频率,定向爬取。 ③`分类更新法`。根据网页改变频率分类,按频率分类访问。如IBM开发的WebFountain,具有根据爬行结果与网页实际变化速度对网页更新频率进行自适应调整的功能。 #### 4、深层网络爬虫(Deep Web Crawler) 深层网络爬虫也称隐形网(Invisible Web Pages)或隐藏网(Hidden Web Crawler)爬虫。网络爬虫在抓取数据过程中会遇到需要通过填写表单信息并通过表单的认证才能够获得Web页面信息的情况,例如用户需要注册登陆后才可访问的站点。利用深层网络爬虫可以帮助用户自动 完成表单的填写和校验工作。其核心组件为表单分析与处理模块。 模块通常分为两种类型: - `基于领域知识的表单填写方法`:此类方法主要通过预定义的知识库,通过语义分析进行表单填写。 - `基于网页结构分析的表单填写方法`:不需要建立知识库,只需将网页表单结构表示成树形式的文档对象模型(document obiect model),从中提取表单的字段值。 #### 5、分布式网络爬虫(distributed web crawler) 通过搭载到分布式计算平台,结合分布式平台的优势来提高抓取数据的效率。利用分布式的“分而治之”的原理分布式爬虫可以实现多个并行爬取网页,每个爬虫需要完成的任务和单个的爬行器类似,从互联网上下载网页,并把网页保存在分布式文件系统中,从中抽取URL并沿着这些URL的指向继续爬行。 根据其`物理独立性`,分布式爬行器分为两大类: - 基于`局域网分布式`网络爬虫:所有爬虫在同一个局域网里运行,其优势在于局域网内连接速度较快,可以保证内部通讯高速运行。但一般需要通过同一个网络来进行外部访问,性能瓶颈在于网络进出口的总带宽。 - 基于`广域网分布式`网络爬虫:爬虫分别运行在不同地理位置(或网络位置),其优势在于可以在一定程度上分散网络流量,减小网络出口的负载。 ### 4.1.4 网络爬取策略 - 网络数据爬取需要从访问页面中所有超链接URL列表开始。这个列表称为爬行边界。 - 如何访问列表则需要一组策略。 (1)选择策略。选择部分网络的策略。策略:限制访问边界。对请求头部(Request Headers)进行筛选,选择确定边界。 (2)广度优先搜索策略。:抓取网页过程中,按照网页结构层次进行,完成当前层次搜索后,再进行下一层次搜索。 (3)最佳优先搜索策略。按照网页分析算法,计算URL与目标网页的相似度,或与主题的相关性,选取评价最好的URL抓取。该策略基于一种局部最优搜索算法,具有一定局限性。 (4)深度优先搜索策略。从一个URL进入,分析该网页的URL,选择其中一个再进入。如此顺序抓取,直至处理完一条路径后,再返回处理下一条路径。 ### 4.1.5 主流开源网络爬虫工具 编写网络爬虫的工具和编程语言繁多。如Java、C#、C++、Python等。同样也出现了一些优秀的网络爬虫技术框架。 - 常用的框架和工具有以下几种: (1)Nutch。使用Java语言开发,内置搭建搜索引警所需要的全部组件。Nutch中的网络爬虫由两部分组成。爬虫crawler模块用于从网络上抓取网页保存到本地并建立页面索引。Searcher模块利用索引检索用户查找的关键词产生查找结果。 (2)Larbin。使用C++语言开发,能够跟踪页面URL进行扩展抓取,为搜索引擎提供广泛数据来源。抓取网页效率非常高。但不提供将抓取的网页存入数据库中或建立索引等功能。 (3)Heritrix。是SourceForge上用Java语言开发的开源网络爬虫工具。提供可视化操作界面,通过Web用户界面启动、设置爬行参数并监控爬虫运行状况。对爬取数据内容形式无要求。可以通过扩展组件,实现自定义抓取逻辑,操作相对简单,方便搭建爬虫项目。 (4)八爪鱼。一款集成度较高的网络爬虫工具,能够爬取多种类型的站点和数据。提供简易和自定义两种数据采集模式。用户无需任何编程技能,仅通过可视化界面设置向导完成网络爬虫任务的创建和管理操作。同时可将抓取的数据以结构化格式保存在EXCEL,TXT,HTML文件或数据库中。 (5)HTTrack。一款整站爬取软件。用于下载整个网站页面数据,并能够将下载的站点本地部署提供离线浏览。由于HTTrack爬虫特性与搜索引擎蜘蛛爬虫高度相似,被逐渐应用于SEO(搜索引擎优化)工作中。 (6)Scrapy。通过Python语言编写的一款基于Twisted异步网络爬虫框架。结合Python语言强大的数据处理能力及丰富的功能库,在搜索引警,数据挖掘,信息处理或存储历史数据等领域得到广泛应用。只需要编写少量代码就可实现抓取网页内容以及各种图片的任务。
张龙
2024年7月10日 11:22
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码