Re: [问题] 如何将html_nodes的资料转成CSV

楼主: celestialgod (天)   2016-12-04 21:09:35
※ 引述《lovedmagic (EricZou)》之铭言:
: [问题类型]:
: 程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
: [软件熟悉度]:
: 新手(没写过程式,R 是我的第一次)
: [问题叙述]:
: 参考了一下板上的资讯,对于用rvest转CSV档还是不了解
: 请求指点迷津
: [程式范例]:
: if (!"installr" %in% installed.packages()) install.packages("installr")
: library(installr)
: require2(rvest)
: require2(stringr)
: require2(pipeR)
: ateam1 <- read_html("https://www.kickstarter.com/mexico?ref=hero")
: asd = html_nodes(ateam1, "ul.project-stats")
: html_text(asd)
: [1] "\n53% funded\n\n\nMX$ 24,235 pledged\n\n\nFunded\n\n\n\n\n\n
: [2] "\n4% funded\n\n\nMX$ 7,305 pledged\n\n\nFunded\n\n\n\n\n\n
: [3] "\n67% funded\n\n\nMX$ 54,050 pledged\n\n\nFunded\n\n\n\n\n\n
: 如果我将资料汇出成CSV有什么办法呢?直接用write.csv会出现他是nodes
: 所以不能用data.frame的方式输出,而其实我只要53%- $24235 、4%
: - $7305 这两个资料,那我又有什么其他的方法可以完成呢?
: [环境叙述]:
: Windows 7
: R 3.2.2
: [关键字]:
: html、网络爬虫
使用html_structure去看html的架构再根据架构去剖析出你要的资讯即可
示范如下:
if (!"installr" %in% installed.packages()) install.packages("installr")
library(installr)
require2(rvest)
require2(pipeR)
require2(plyr)
stats <- read_html("https://www.kickstarter.com/mexico?ref=hero") %>>%
html_nodes("ul.project-stats")
# html_structure(stats[[1]]) # 用来查看node资料资讯
laply(stats, function(x){
c(
funded = html_node(x, "div.project-stats-value") %>>% html_text,
pledged = html_node(x, "span.money") %>>% html_text
)
})
可能剩下就是处理一些文字的,例如把%数跟$转成数字
作者: lovedmagic (EricZou)   2016-12-04 21:23:00
先服用看看 感谢

Links booklink

Contact Us: admin [ a t ] ucptt.com