请选择 进入手机版 | 继续访问电脑版
楼主: daishen
13682 16

[程序分享] 有了rvest,妈妈再也不用担心我的数据了。 [推广有奖]

  • 0关注
  • 10粉丝

博士生

6%

还不是VIP/贵宾

-

威望
0
论坛币
3155 个
通用积分
51.3742
学术水平
67 点
热心指数
68 点
信用等级
42 点
经验
3733 点
帖子
111
精华
0
在线时间
324 小时
注册时间
2014-9-14
最后登录
2016-3-10

daishen 发表于 2014-12-6 14:24:10 |显示全部楼层 |坛友微信交流群
相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
rvest实乃利器,RCurl和XML相形见绌。
Automated Data Collection with R中的第十章的数据下载为例,比较一下两者的优劣。

数据源自英国ZF的一个新闻网站,网址是:

https://www.gov.uk/government/announcements?keywords=&announcem

ent_type_option=press-releases&topics[]=all&departments[]=all&

world_locations[]=all&from_date=&to_date=01%2F07%2F2010

选择201071日以前英国ZF相关部门所发的新闻,总计749篇,包含在19个网页中。

数据提取的第一个任务就是将这749篇新闻的链接路径保存在本地硬盘上。浏览网页,发现除了第一个网页外,其它18个网页都是有规律的,这样提取网页标题就分两步走:

library(rvest)  #抓取网页数据

library(stringr) #处理文本

# 第一页网址

url = 'https://www.gov.uk/government/announcements?keywords=&announcement_type_option=press-releases&topics[]=all&departments[]=all&world_locations[]=all&from_date=&to_date=01%2F07%2F2010'

first = url %>% html() %>% html_nodes("h3 a") %>% html_attrs()

# h3 a是使用查看器在网页的相应标题上停留给出的节点位置,非常方便快捷。

QQ截图20141206073155.png

first = as.character(first)

# 其它18页网址

others = sapply(2:19,function(i) str_c("https://www.gov.uk/government/announcements?announcement_type_option=press-releases&departments%5B%5D=all&from_date=&keywords=&page=",i,"&to_date=01%2F07%2F2010&topics%5B%5D=all&world_locations%5B%5D=all"))

myfun = function(x) {

                  b = others[x] %>% html() %>% html_nodes("h3 a") %>% html_attrs()

                  as.character(b)

                 }

doc = sapply(1:18,myfun)

# 第一页加上18页总计19页。

dat = c(first,unlist(doc))

dat = str_c("https://www.gov.uk",dat)

#建立一个目录,把网址数据保留起来

dir.create("F:/Press_Releases")

for(i in 1:length(dat)) write(dat, file = str_c("F:/Press_Releases/", i, ".html"))

      

# 验证一下

length(list.files("F:/Press_Releases"))

[1] 749

list.files("F:/Press_Releases")[1:3]

[1] "1.html" "10.html" "100.html"


如果有耐心,在看看书中的代码,不把你搞死不算完。


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Vest Est VES announcement Departments 英国 网页 网站

已有 5 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
al51fn + 1 + 1 + 1 对论坛有贡献
oliyiyi + 100 + 5 精彩帖子
SPSSCHEN + 5 + 2 + 2 精彩帖子
Nicolle + 40 + 5 + 5 精彩帖子
李会超 + 80 + 40 奖励积极上传好的资料

总评分: 经验 + 220  论坛币 + 45  学术水平 + 13  热心指数 + 8  信用等级 + 1   查看全部评分

本帖被以下文库推荐

soccy 发表于 2014-12-7 00:02:23 |显示全部楼层 |坛友微信交流群
不错不错。

使用道具

yangkongsong 在职认证  发表于 2014-12-7 09:15:47 |显示全部楼层 |坛友微信交流群

使用道具

distiner 发表于 2014-12-11 00:47:03 |显示全部楼层 |坛友微信交流群
我想从一个网站上爬取数据,总共分页很多,但是一旦爬到一定的时候,网站最多会让我在不login的情况下,爬取15个页面的信息,也就是说我必须要login才能爬完所有的数据,在rvest中是如何实现login的?

使用道具

楼主有这方面的书么?关于rvest的

使用道具

李会超 发表于 2015-1-13 18:01:48 |显示全部楼层 |坛友微信交流群
好的分享

使用道具

ryoeng 在职认证  发表于 2015-2-12 14:13:46 |显示全部楼层 |坛友微信交流群
  1. library(rvest)
  2. library(stringr)
  3. library(pipeR)

  4. # Show the pages of announces from British government before 01-July-2010.
  5. lnk <- 'https://www.gov.uk/government/announcements?keywords=&announcement_filter_option=all&topics%5B%5D=all&departments%5B%5D=all&world_locations%5B%5D=all&from_date=&to_date=01%2F07%2F2010'

  6. # Pages available
  7. pages <- lnk %>>% html_session %>>% html_nodes('span') %>% .[[6]] %>>% html_text() %>>% strsplit(' ') %>% .[[1]] %>% .[3] %>>% as.numeric %>>% seq()
  8. pages

  9. dat <- lapply(pages, function(i){
  10.         # Links of available pages
  11.         lnks <- paste0('https://www.gov.uk/government/announcements?announcement_filter_option=all&departments%5B%5D=all&from_date=&keywords=&page=', i, '&to_date=01%2F07%2F2010&topics%5B%5D=all&world_locations%5B%5D=all')

  12.         # Avaible titles/topics inside the particular page
  13.         lnks %>>% html_session %>>% html_nodes('div') %>% .[[37]] %>>% html_nodes('a') %>>% html_text()
  14.        })

  15. # 44 List avaiable and the contents of the topics are showing inside every single list
  16. dat
复制代码
学生咱也正阅读着此书,依样画葫芦。见笑了!

使用道具

为清凉1 发表于 2015-12-15 16:45:55 |显示全部楼层 |坛友微信交流群
请问楼主RVEST包,安装不了是什么情况?

使用道具

秦时的明月 学生认证  发表于 2015-12-26 13:37:38 |显示全部楼层 |坛友微信交流群
为清凉1 发表于 2015-12-15 16:45
请问楼主RVEST包,安装不了是什么情况?
解决了吗?我也装不了

使用道具

帮忙看看我的怎么不能运行呢?
无标题.png

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-18 08:58