《R语言数据分析》——2.3 从HTML表中读取数据
万维网上传统的文本和数据以HTML页面为主,我们经常可以从例如HTML表找到一些有意思的信息,很容易就能通过复制和粘贴将数据转换成Excel电子表格,保存在磁盘上,稍后再导入到R中。但是这个过程比较费时间,也有点枯燥,因此可以考虑进行自动化处理。
可以借助前面提到过的客户反馈数据库的APIs来实现这一功能。如果我们不指定输出格式为XML格式或JSON格式,浏览器将默认返回一个HTML表格,输出结果如下图:
在R控制台中实现这个功能有点复杂,因为当使用curl时,浏览器将发送一些非默认的HTTP头,如果处理的是URL则简单返回一个JSON表。为了得到HTML格式,必须要让服务器知道我们期望的是HTML的输出格式,因此,需要在查询中设置合适的HTTP头:
XML包也提供了一个非常简单的办法实现从某个文档或指定结点来解析所有的HTML表,调用readHTMLTable函数,该函数将默认返回一个data.frames的list对象:
如果仅希望获得页面的第一张表,我们可以稍后设置res的过滤器或者设置readHTML-Table中which参数的值。以下两个R表达式效果相同:
从静态Web页面读取表数据到目前为止,我们已经在同一个主题上变换了不少花样,但如果我们发现下载了一个完全不是前述任何一种流行的数据格式文件该怎么办?例如,有些人可能会对在CRAN上提供的R包感兴趣,这些包的列表可从http://cran.r-project.org/web/packages/available_packages_by_name.html处获得。我们又该如何完成这个任务?不调用RCurl或者指定客户头,我们也不需要先去处理文件,只需将URL传递给readHTMLTable即可:
readHTMLTable能够直接获得HTML页面,然后抽取所有的HTML表转换成data.frame对象,并返回有关它们的list内容。在下面的样例中,我们将只使用一个data.frame的list信息来获得所有包的名字和列的描述。
不过,str函数返回的文本信息所含信息量并不是很大,我们将快速介绍处理和可视化这类原始数据的方法,并通过CRAN上的R包来展示这些有些过量的特征。可以通过wordcloud包和tm包中一些奇妙的函数来创建一个关于包的描述的词组云:
这一简短的命令可以产生如下图所示的结果输出,它们代表了有关R包的描述中出现频率最高的词语。这些词语的位置没有特殊含义,但是通常词语的字体越大,意味着其出现频率越高。请参考屏幕截图的技术说明:
我们刚才是将第一个list对象的第二行字串传递到wordcloud函数,该函数将自动返回tm包对文本数据挖掘的结果。有关这一内容的详细说明,请参考本书第7章的内容。接下来,函数将根据这些词语在包描述中出现的频率赋予相应权重,然后根据权重确定其输出字体大小。看起来,R包确实都是首先关注构建模型并对数据应用不同的测试。
相关文章
- spring boot单元测试之十四:controller使用html模板时做单元测试(spring boot 2.4.4)
- HTML DOM print() 方法 ,html 打印
- 支持模糊查询的替代html中select的jquery插件
- How to include html native content to UI5 page - 直接在xml view里添加html namespace
- SAP programming language培训环境准备 index.html
- Html 语法学习笔记一
- Atitit spirngboot 访问 html文件总结 自设计web服务器原理与实现 Url路由压力,读取url,获得项目更路径绝对路径,拼接为文件路径。读取文建内容输出即可 目录路径 u
- atitit.软件开发GUI 布局管理优缺点总结java swing wpf web html c++ qt php asp.net winform
- 17行html代码实现的将网页文本保存成本地文本文件
- Smart HTML Elements v14.0.0
- HTML春联(部分Vue)有源码_有素材_包满意
- 〖大前端 - 基础入门三大核心之 html 篇⑪〗- 超级链接
- Html就是超文本标记语言的简写,是最基础的网页语言
- 自动化测试===unittest配套的HTMLTestRunner.py生成html报告源码
- IPython:利用python语言将后缀为ipynb文件中的输出的图片在py文件中编程进行可视化—即如何将IPython.core.display.HTML类型的数据进行图表可视化