用R批量下载豆瓣top250图书

第一次写博客
第一次用R去爬豆瓣
其实看了一些其他的教程,还是挺好上手的
虽然一直都知道爬虫要深起来,就没个底
不过,就日常来用一用
还是不错的

1、代码如下:

library(rvest)
library(downloader)
for(i in 1:10){
 url[i] <- paste("https://book.douban.com/top250?start=",(i-1)*25,sep="")
 link <- read_html(url[i])%>%html_nodes("a.nbg")%>%html_attr("href")
 for(j in 1:length(link)){
  picstring <- paste(i*100+j,"jpg",sep=".")
  urlpic <- link[j]
  iferror = 0
  iferror <- tryCatch(read_html(urlpic),error=function(e){return(1)})
  if(mode(iferror) != "numeric"){
   linkpic <- read_html(urlpic)%>%html_nodes("a.nbg")%>%html_attr("href")
   print(linkpic)
   download(linkpic,picstring,mode = "ab")
  }
 }
}

2、结果如下:
结果

3、其中曲折
3.1 关于有的链接被404
哎哟,这个是真的气啊
好好的一本书怎么就被404了(想想就好气哦!)
然后我就只能先用tryCatch收集error
但是我要怎么跳过这个error就真的是很麻烦了
我用tryCatch在error的时候返回一个数字
而正常情况下则是返回一个有两项的list
于是大力出奇迹地怼
直接去判定iferror是不是数字类型
是就跳过,不是就可以开始下载了
3.2关于download
由于真的是第一次用R来爬东西
对download不熟
后面看过一些东西才知道
这个方法需要自己设置destfile

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值