楼主: 华月天心
2591 14

[学习分享] 用R爬取奥克兰大学的R语言教程 [推广有奖]

  • 0关注
  • 0粉丝

已卖:288份资源

大专生

75%

还不是VIP/贵宾

-

威望
0
论坛币
1420 个
通用积分
36.9154
学术水平
7 点
热心指数
9 点
信用等级
5 点
经验
850 点
帖子
36
精华
0
在线时间
76 小时
注册时间
2017-4-7
最后登录
2023-3-6

楼主
华月天心 发表于 2019-5-10 16:19:48 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
奥克兰大学是新西兰的一所大学,2019QS世界排名第85位。今天跟大家分享一下怎么从该学校官网上爬取其一套R语言的pdf课件。
该课程的网址为https://www.stat.auckland.ac.nz/~ihaka/120/Lectures/,我们称之为url。下面是该套教程的官网截图。 捕获.PNG
我们随便点开一个文件如lecture01.pdf,就可以发现它的下载地址其实就是在上述url的基础上添加字符lecture01.pdf。我们只需要构建出所有需下载文件的网址就能对其进行下载了。以下是相应的代码。大家可以尝试一下。理解起来也非常简单的。
##安装与加载爬取文件需要的包
install.packages("downloader")
install.packages("rvest")

library(rvest)
library(downloader)

##创建网址中不变的部分
url <- 'https://www.stat.auckland.ac.nz/~ihaka/120/Lectures/lecture'

##创建每个文件网址最后的一段字符
a<-paste(0,c(1:9),sep="")
b<-c(a,as.character(c(10:29)))
c<-paste(b,"-8up",sep="")
num<-c(b,c)
numb<-paste(num,".pdf",sep="")

##将两段字符通过paste函数拼接起来形成完整的下载链接
link<-paste(url,numb,sep="")
link

#采用for循环批量下载课件
for(i in 1:length(link))
{
  download(link,paste("E:/R/",numb,sep = ""), mode = "wb")
}



这是下载完成后的样子和打开后的内容啦! 捕获1.PNG

捕获2.PNG
二维码

扫码加我 拉你入群

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

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


捕获2.PNG (152.18 KB)

捕获2.PNG

已有 1 人评分论坛币 收起 理由
cheetahfly + 30 精彩帖子

总评分: 论坛币 + 30   查看全部评分

沙发
华月天心 发表于 2019-5-10 16:39:58
忘说了,该教程是R语言开发者之一Ross Ihaka大神的教学课件。

藤椅
cheetahfly 在职认证  发表于 2019-5-10 17:34:10
谢谢分享

板凳
hifinecon 发表于 2019-5-10 17:57:41 来自手机
华月天心 发表于 2019-5-10 16:19
奥克兰大学是新西兰的一所大学,2019QS世界排名第85位。今天跟大家分享一下怎么从该学校官网上爬取其一套R语 ...

报纸
leeyaya 在职认证  发表于 2019-5-11 08:04:35 来自手机
华月天心 发表于 2019-5-10 16:19
奥克兰大学是新西兰的一所大学,2019QS世界排名第85位。今天跟大家分享一下怎么从该学校官网上爬取其一套R语 ...
感谢分享!

地板
nieqiang110 学生认证  发表于 2019-5-11 08:16:32
楼主:重复不出来

7
华月天心 发表于 2019-5-11 18:44:32
nieqiang110 发表于 2019-5-11 08:16
楼主:重复不出来
请问是哪里报错了呢?

8
xuezhongcao 在职认证  发表于 2019-5-12 11:20:28
重复出来了 非常感谢

9
lyfyb99 在职认证  发表于 2019-5-14 10:48:40
请帮忙看看, 只能抓到第一个pdf, 显示如下:
Warning messages:
1: In if (grepl("^https?://", url)) { :
  the condition has length > 1 and only the first element will be used
2: In if (grepl("^https?://", url)) { :
  the condition has length > 1 and only the first element will be used
3: In if (grepl("^https?://", url)) { :
  the condition has length > 1 and only the first element will be used

10
wind2599 发表于 2019-5-19 00:20:17
download(link[i],paste("E:/R/",numb[i],sep = ""), mode = "wb")
应该是这样吧?

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-25 20:22