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包使用的更多相关文章

  1. R语言rvest包网络爬虫

    R语言网络爬虫初学者指南(使用rvest包) 钱亦欣 发表于 今年 06-04 14:50   5228 阅读   作者 SAURAV KAUSHIK 译者 钱亦欣 引言 网上的数据和信息无穷无尽,如 ...

  2. R语言扩展包dplyr——数据清洗和整理

    R语言扩展包dplyr——数据清洗和整理 标签: 数据R语言数据清洗数据整理 2015-01-22 18:04 7357人阅读 评论(0) 收藏 举报  分类: R Programming(11)  ...

  3. R语言-神经网络包RSNNS

    code{white-space: pre;} pre:not([class]) { background-color: white; }if (window.hljs && docu ...

  4. R语言-Knitr包的详细使用说明

    R语言-Knitr包的详细使用说明 by 扬眉剑 来自数盟[总舵] 群:321311420 1.相关资料 1:自动化报告-谢益辉 https://github.com/yihui/r-ninja/bl ...

  5. R语言dplyr包初探

    昨天学了一下R语言dplyr包,处理数据框还是很好用的.记录一下免得我忘记了... 先写一篇入门的,以后有空再写一篇详细的用法. #dplyr learning library(dplyr) #fil ...

  6. R语言 ggplot2包

    R语言  ggplot2包的学习   分析数据要做的第一件事情,就是观察它.对于每个变量,哪些值是最常见的?值域是大是小?是否有异常观测? ggplot2图形之基本语法: ggplot2的核心理念是将 ...

  7. 安装R语言的包的方法

    安装R语言的包的方法: 1. 在线安装 在R的控制台,输入类似install.packages("TSA")  # 安装 TSA install.packages("TS ...

  8. R语言 arules包 apriori()函数中文帮助文档(中英文对照)

    apriori(arules) apriori()所属R语言包:arules                                         Mining Associations w ...

  9. Bagging(R语言实现)—包外错误率,多样性测度

    1.      Bagging Bagging即套袋法,其算法过程如下: 从原始样本集中抽取训练集.每轮从原始样本集中使用Bootstraping的方法抽取n个训练样本(在训练集中,有些样本可能被多次 ...

随机推荐

  1. Memtester——Linux内存测试工具

    一.Memtester简单介绍 Memtester主要是捕获内存错误和一直处于很高或者很低的坏位, 其测试的主要项目有随机值,异或比较,减法,乘法,除法,与或运算等等. 通过给定测试内存的大小和次数, ...

  2. DP解LCS问题模板及其优化

    LCS--Longest Common Subsequence,即最长公共子序列,一般使用DP来解. 常规方法: dp[i][j]表示字符串s1前i个字符组成的字符串与s2前j个字符组成的字符串的LC ...

  3. java.lang.Error: Unresolved compilation problem: 解决方案

    严重: Allocate exception for servlet WX_Interfacejava.lang.Error: Unresolved compilation problem: The ...

  4. Python学习记录day8

    目录 Python学习记录day8 1. 静态方法 2. 类方法 3. 属性方法 4. 类的特殊成员方法 4.1 __doc__表示类的描述信息 4.2 __module__ 和 __class__ ...

  5. TokuMX写操作无法加锁的问题

    问题: TokuMX删除文档时,符合删除条件的文档很多,删除操作持续时间长,期间,服务写操作OPS大幅下降,同时日志log里发现大量“ Lock not granted. Try restarting ...

  6. Linux sudo 错误:XXX is not in the sudoers file 解决办法

    最近在学习linux,在某个用户(xxx)下使用sudo的时候,提示以下错误:xxx is not in the sudoers file. This incident will be reporte ...

  7. Javascript中escape()、encodeURI()、encodeURIComponent()的区别

    JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decod ...

  8. Jmeter Ant Task如果报告中有错误,在邮件内容里面直接显示出来 系列2

    由于部门有多个项目,将自动化测试框架运用于多个项目时,希望针对每个项目修改的东西越少越好,为此,做如下修改: D:\apache-jmeter-2.7\extras\jmeter-results-de ...

  9. 类方法 isAssignableFrom、instanceof 和 asSubclass

    类方法 isAssignableFrom.instanceof 和 asSubclass Spring 框架 CollectionFactory 的 asEnumType 方法使用 "类.a ...

  10. linux磁盘管理(RHEL)

    IDE硬盘名称格式为/dev/hdXY,其中X为a-z的小写字母,Y为数字1-4(一块硬盘最多能分4个主分区).如hda1,表示第一块硬盘的第一个分区.hdb3表示第二块硬盘的第三个分区.还有如Pri ...