转载:R语言rvest包使用
R中有好几个包都可以抓取网页数据,但是rvest + CSS Selector最方便。

通过查看器立刻知道表格数据都在td:nth-child(1),td:nth-child(3)之类的节点中,直接代码提取就行了。
library(rvest)
先看看都有什么
freak <- html_session("http://torrentfreak.com/top-10-most-pirated-movies-of-the-week-130304/")
freak
<session> http://torrentfreak.com/top-10-most-pirated-movies-of-the-week-130304/
Status: 200
Type: text/html; charset=UTF-8
Size: 24983
freak %>% html_nodes("td:nth-child(3)") %>% html_text() %>% .[1:10]
[1] "Silver Linings Playbook "
[2] "The Hobbit: An Unexpected Journey "
[3] "Life of Pi (DVDscr/DVDrip)"
[4] "Argo (DVDscr)"
[5] "Identity Thief "
[6] "Red Dawn "
[7] "Rise Of The Guardians (DVDscr)"
[8] "Django Unchained (DVDscr)"
[9] "Lincoln (DVDscr)"
[10] "Zero Dark Thirty "
freak %>% html_nodes("td:nth-child(1)") %>% html_text() %>% .[2:11]
[1] "1" "2" "3" "4" "5" "6" "7" "8" "9" "10"
freak %>% html_nodes("td:nth-child(4)") %>% html_text() %>% .[1:10]
[1] "7.4 / trailer" "8.2 / trailer" "8.3 / trailer" "8.2 / trailer"
[5] "8.2 / trailer" "5.3 / trailer" "7.5 / trailer" "8.8 / trailer"
[9] "8.2 / trailer" "7.6 / trailer"
freak %>% html_nodes("td:nth-child(4) a[href*='imdb']") %>% html_attr("href") %>% .[1:10]
[1] "http://www.imdb.com/title/tt1045658/"
[2] "http://www.imdb.com/title/tt0903624/"
[3] "http://www.imdb.com/title/tt0454876/"
[4] "http://www.imdb.com/title/tt1024648/"
[5] "http://www.imdb.com/title/tt2024432/"
[6] "http://www.imdb.com/title/tt1234719/"
[7] "http://www.imdb.com/title/tt1446192/"
[8] "http://www.imdb.com/title/tt1853728/"
[9] "http://www.imdb.com/title/tt0443272/"
[10] "http://www.imdb.com/title/tt1790885/?"
#构建数据框
data.frame(movie=freak %>% html_nodes("td:nth-child(3)") %>% html_text() %>% .[1:10],
rank=freak %>% html_nodes("td:nth-child(1)") %>% html_text() %>% .[2:11],
rating=freak %>% html_nodes("td:nth-child(4)") %>% html_text() %>% .[1:10],
imdb.url=freak %>% html_nodes("td:nth child(4) a[href*='imdb']") %>% html_attr("href") %>% .[1:10],stringsAsFactors=FALSE)
movie rank rating imdb.url
1 Silver Linings Playbook 1 7.4 / trailer http://www.imdb.com/title/tt1045658/
2 The Hobbit: An Unexpected Journey 2 8.2 / trailer http://www.imdb.com/title/tt0903624/
3 Life of Pi (DVDscr/DVDrip) 3 8.3 / trailer http://www.imdb.com/title/tt0454876/
4 Argo (DVDscr) 4 8.2 / trailer http://www.imdb.com/title/tt1024648/
5 Identity Thief 5 8.2 / trailer http://www.imdb.com/title/tt2024432/
6 Red Dawn 6 5.3 / trailer http://www.imdb.com/title/tt1234719/
7 Rise Of The Guardians (DVDscr) 7 7.5 / trailer http://www.imdb.com/title/tt1446192/
8 Django Unchained (DVDscr) 8 8.8 / trailer http://www.imdb.com/title/tt1853728/
9 Lincoln (DVDscr) 9 8.2 / trailer http://www.imdb.com/title/tt0443272/
10 Zero Dark Thirty 10 7.6 / trailer http://www.imdb.com/title/tt1790885/?
如果不考虑网址,还有更简单的方式:
freak %>% html_nodes("table") %>% html_table()
[[1]]
Ranking (last week) Movie IMDb Rating / Trailer
1 torrentfreak.com <NA> <NA> <NA>
2 1 (5) Silver Linings Playbook 7.4 / trailer
3 2 (back) The Hobbit: An Unexpected Journey 8.2 / trailer
4 3 (9) Life of Pi (DVDscr/DVDrip) 8.3 / trailer
5 4 (back) Argo (DVDscr) 8.2 / trailer
6 5 (…) Identity Thief 8.2 / trailer
7 6 (1) Red Dawn 5.3 / trailer
8 7 (2) Rise Of The Guardians (DVDscr) 7.5 / trailer
9 8 (4) Django Unchained (DVDscr) 8.8 / trailer
10 9 (6) Lincoln (DVDscr) 8.2 / trailer
11 10 (back) Zero Dark Thirty 7.6 / trailer
转载:R语言rvest包使用的更多相关文章
- R语言rvest包网络爬虫
R语言网络爬虫初学者指南(使用rvest包) 钱亦欣 发表于 今年 06-04 14:50 5228 阅读 作者 SAURAV KAUSHIK 译者 钱亦欣 引言 网上的数据和信息无穷无尽,如 ...
- R语言扩展包dplyr——数据清洗和整理
R语言扩展包dplyr——数据清洗和整理 标签: 数据R语言数据清洗数据整理 2015-01-22 18:04 7357人阅读 评论(0) 收藏 举报 分类: R Programming(11) ...
- R语言-神经网络包RSNNS
code{white-space: pre;} pre:not([class]) { background-color: white; }if (window.hljs && docu ...
- R语言-Knitr包的详细使用说明
R语言-Knitr包的详细使用说明 by 扬眉剑 来自数盟[总舵] 群:321311420 1.相关资料 1:自动化报告-谢益辉 https://github.com/yihui/r-ninja/bl ...
- R语言dplyr包初探
昨天学了一下R语言dplyr包,处理数据框还是很好用的.记录一下免得我忘记了... 先写一篇入门的,以后有空再写一篇详细的用法. #dplyr learning library(dplyr) #fil ...
- R语言 ggplot2包
R语言 ggplot2包的学习 分析数据要做的第一件事情,就是观察它.对于每个变量,哪些值是最常见的?值域是大是小?是否有异常观测? ggplot2图形之基本语法: ggplot2的核心理念是将 ...
- 安装R语言的包的方法
安装R语言的包的方法: 1. 在线安装 在R的控制台,输入类似install.packages("TSA") # 安装 TSA install.packages("TS ...
- R语言 arules包 apriori()函数中文帮助文档(中英文对照)
apriori(arules) apriori()所属R语言包:arules Mining Associations w ...
- Bagging(R语言实现)—包外错误率,多样性测度
1. Bagging Bagging即套袋法,其算法过程如下: 从原始样本集中抽取训练集.每轮从原始样本集中使用Bootstraping的方法抽取n个训练样本(在训练集中,有些样本可能被多次 ...
随机推荐
- goim源码分析与二次开发-comet分析一
因为要完成一个聊天的项目,所以借鉴了goim,第一篇分析打算半原版,先摘抄http://www.jianshu.com/p/8bd96a9a473d他的一些理解,写这些还是为了让自己更好的理解这个项目 ...
- 利用redis完成自动补全搜索功能(二)
前面介绍了自动完成的大致思路,现在把搜索次数的功能也结合上去.我采用的是hash表来做的,当然也可以在生成分词的时候,另外一个有序集合来维护排序, 然后2个有序集合取交集即可.这里介绍hash的方式来 ...
- maven的配置及仓库的配置
1.maven的配置 1.1.注意:电脑上需要安装jdk. 1.2.配置MAVEN_HOME,再在path中配置到bin这一层. (1)配置MAVEN_HOME:我的电脑--->右击---> ...
- vue2.0学习小列子
参考地址:https://segmentfault.com/a/1190000006165434 例1: <template> <div id="app"> ...
- Codeforces 709C 模拟
C. Letters Cyclic Shift time limit per test:1 second memory limit per test:256 megabytes input:stand ...
- 经典递归问题:0,1背包问题 kmp 用遗传算法来解背包问题,hash表,位图法搜索,最长公共子序列
0,1背包问题:我写笔记风格就是想到哪里写哪里,有很多是旧的也没删除,代码内部可能有很多重复的东西,但是保证能运行出最后效果 '''学点高大上的遗传算法''' '''首先是Np问题的定义: npc:多 ...
- 编写可维护的JavaScript 收纳架
如果你看过Nicolas C.Zakas写过的任何作品,你必须承认他是个不折不扣的天才.也只有天才级的才能写出<JavaScript高级程序设计>让所有的前端攻城师人手一本.Nicolas ...
- Product of integers
https://github.com/Premiumlab/Python-for-Algorithms--Data-Structures--and-Interviews/blob/master/Moc ...
- 594. Longest Harmonious Subsequence
方法一:用一个map来辅助,代码简单,思路清晰 static int wing=[]() { std::ios::sync_with_stdio(false); cin.tie(NULL); ; }( ...
- 2018.09.23 codeforces 1053B. Vasya and Good Sequences(前缀和)
传送门 考试的时候卡了一会儿. 显然这个答案只跟二进制位为1的数量有关. 还有一个显然的结论. 对于一个区间[l,r][l,r][l,r],如果其中单个数二进制位为1的数量最大值不到区间所有数二进制位 ...