四种发布、提取、存储网页信息的方法

AutomatedDataCollectionwithR这本书的第一章,introduction。

Disseminating

HTML、XML、JSON等

4tech.jpg

HTML是我们在浏览网页时,用来组织网页结构的轻量型标记语言,比如texts, tables, lists, links等都可以被提取出来:

#read_html和htmlParse功能一样
library(rvest) # the new package, version 0.3.0
 # read_html() from the rvest package is the new htmlParse() from the XML package
#get table
tables <- html_table(heritage_parsed, fill = TRUE) # html_table() from the rvest package, which replaces readHTMLTable() from the XML package
#举个栗子,提取简书上一个网页的table:
jianshu<- read_html("https://www.jianshu.com/p/8a898b204285", encoding = "UTF-8")
tables <- html_table(jianshu,fill = TRUE)

Chiptable <- tables[[1]]

XML和HTML比较像,用于网络数据传输,但html主要是展示网页,而xml主要是存储数据。html是为了展示出document,而xml相当于是一些包裹在tag(tag就是html里面对应结构组分的标签,比如table, title, links)里面的data。而且xml的tag更多样,相比html存储网页数据更灵活:

Thus, HTML documents are interpreted and transformed into pretty-looking output by browsers, whereas XML is “just” data wrapped in user-defined tags. The user-defined tags
make XML much more flexible for storing data than HTML.

另一个常见的数据存储和交换的格式是JavaScript Object Notation,简称JSON。

Like XML, JSON is used by many web applications to provide data for web developers. Imagine both XML and JSON as standards that define containers for plain text data.

比如开发者想分析Twitter上的数据,就从Twitter构建的界面上获取必要的数据,这些数据被Twitter以JSON的格式存储,从而可被开发者利用。XML和JSON都是应用非常广泛的数据传输格式,因为他们对广大编程语言包括R都兼容。

AJAX比较复杂,是创建动态网页必须的,现代网页应用中广泛,和经典的html以及xml的逻辑都不太一样,对于爬虫来说是个麻烦的东西

AJAX = 异步 JavaScript 和 XML。

AJAX 是一种用于创建快速动态网页的技术。

通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。

有很多使用 AJAX 的应用程序案例:新浪微博、Google 地图、开心网等等。

Plain text大家都知道,普通的文本文件,无结构的,只能被机器当成相同的每一行,一行一行读取。但在各种html, xml, json格式里都十分常见。

Extraction

XPath query language,从标记语言中提取特定信息的一门语言,实现对数据的初步过滤,只留下我们想要的信息。

JSON documents一般存储更小,更容易被parse。不需要特定的query language,只需R的函数即可。

Selenium:可以通过R的命令行实现对浏览器窗口的操作,比如鼠标点击,键盘输入等

正则表达式,在XPath不太好用时,可以用于寻找一些离散的,隐藏的信息

Text mining:对text进行分类,包括明显的和隐藏的语义,前者就是直接可见的信息,后者是读者可以根据文档内容划分成不同的主题,比如政治,经济等,类似主题模型,不带明显的label。

Storage

谈数据库的重要性:

一方面是高效的数据管理,和数据结构组织

一方面是如果你需要对大量的,分散的数据进行重复操作和处理,搭建数据库也是节约时间更快速的方法。

可以参考SQL

第二章介绍HTML

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,311评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,339评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,671评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,252评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,253评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,031评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,340评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,973评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,466评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,937评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,039评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,701评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,254评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,259评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,485评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,497评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,786评论 2 345