- 1、本文档共21页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
全国地方高校MOOC联盟指定参考书,深圳大学教材出版基金资助
新媒体数据挖掘基于R语言
of
40
2
习题
6.1网络数据的获取途径及相关基础知识
第六章 网络数据程序化采集
of
40
3
“工欲善其事必先利其器”,尽管工具的掌握非常重要,但是理论和基础知识更为重要,否则一切工具都是空中楼阁,不仅学习起来一头雾水,实践过程中也会陷入目标不明确的困境。要掌握程序化网络数据收集,首先要了解网络数据的各种获取途径,针对特定途径有针对性的学习网络数据的基础知识例如:网页的页面组织结构、Web的工作原理(HTTP协议)、网络数据XML/JSON的结构和规则化检索方法(XPath、正则表达式)等,这样才能展开进一步的学习和实践。
6.1网络数据的获取途径及相关基础知识
第六章 网络数据程序化采集
of
40
4
6.1.1 Web数据的获取途径
从互联网上获得数据主要有四种方式
Database retrieving(数据库级API),由于这种方法直接针对数据库进行操作,如果操作不当将对系统的安全与性能带来影响,因此这种直接提供数据库开放权限的情况及其少见,通常仅供内部人员使用。因此本书后面只以后三种方法为例展开讲解;
Application retrieving(应用程序级API,后面简称API),通常是软件/网站平台提供的特定数据检索通道,发布了相关的数据格式和程序接口提供的专用数据传输通道。这种方式稳定、高效,是最为推荐的方式,但缺陷是并非所有我们感兴趣的平台都提供了API。这种方法除了查阅API文档之外,主要使用“Rcurl”包和“rjson”包;
Web scraping(抓取html静态网页),抓取已经发布的html页面。这种方法主要直接使用“Rcurl”包、“XML”包;
Web scraping(抓取动态网页),采用虚拟浏览器的方式,在动态页面中模拟行为,触发html的动态生成和数据抓取。这种方法主要直接使用“RSelenium”包,而“Rcurl”包和“XML”包也必不可少;
6.1网络数据的获取途径及相关基础知识
第六章 网络数据程序化采集
of
40
5
6.1.2 Web的结构与原理
如图6-3所示,是用户通过浏览器向Web服务器请求网页的过程,由建立连接、客户端发起http请求、服务器端发送http响应、服务器端收到-解析-渲染http响应、关闭连接这几个步骤组成。
1 HTTP协议
6.1网络数据的获取途径及相关基础知识
第六章 网络数据程序化采集
of
40
6
我们知道,Web其实就是html(超文本标记语言)文件,如图6-5所示,html文件由html内容(描述是什么)、css样式(描述什么样)、javascript(描述动作/行为)三部分组成。虽然css对html进行样式渲染,javascript对html、css进行操纵(增删改查),但事实上html、css、javascript三者在本质上都是html标记(css是html标记的style属性或干脆就包含在style标记内;javascript包含在script标记内),因此能解析html结构的程序或功能包就能解析html、css、javascript。
2 web的构成
6.1网络数据的获取途径及相关基础知识
第六章 网络数据程序化采集
of
40
7
3 HTML/XML的DOM结构
文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口。在网页上,组织页面(或文档)的对象被组织在一个树形结构中,用来表示文档中对象的标准模型就称为DOM。
正是有了DOM,才有可能对XML和HTML(其实是XML的一种子集)进行高效率的程序化操作(否则要反复地进行复杂而又冗长的字符串操作),R语言中的“XML”包基于DOM提供了许多能对HTML/XML文档进行分析与检索的功能函数。
6.1网络数据的获取途径及相关基础知识
第六章 网络数据程序化采集
of
40
8
4 静态web和动态web的区别
静态网页并不是指没有动态效果(通常是javascript行为)的网页,而是指html网页在请求的时候已经客观存在于网页服务器上;而动态网页是指在收到请求的时候,根据请求用服务器程序(php、jsp、aspx)“动态”地生成html网页。
6.1网络数据的获取途径及相关基础知识
第六章 网络数据程序化采集
of
40
9
5 网络传输数据JSON简介
软件与软件之间通话的数据格式越来越标准化,X
文档评论(0)