第一次写博客
第一次用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