如何用rvest包爬取豆瓣图书250的数据

内容概括:用R中的rvest爬取豆瓣top250图书的基本信息(包括书名、评分、作者、译者、出版社、出版时间已经价格),然后根据出版社和出版时间进行进一步的分析


R代码:

#加载所需的包

library("rvest");

library("dplyr");

library("stringr");

#批量爬取豆瓣图书top250数据

ind <-c(0,25,50,75,100,125,150,175,200,225)

book_inf <-data.frame()

#使用for循环进行批量数据爬取(发现url的规律,写for循环语句)

for (i in1:length(ind)){

web<-read_html(str_c("https://book.douban.com/top250?start=",ind[i]),encoding="UTF-8")

#爬取图书的作者、出版社、出版时间、价格

p <-web%>%html_nodes("p.pl")%>%html_text()

#爬取图书的name

q <-web%>%html_nodes(".pl2 a")%>%html_text()

#爬取图书的rate

r <- web%>%html_nodes(".rating_nums")%>%html_text()

#消除q中的空格

q <-str_replace_all(q," ","")

q <-str_replace_all(q,"\n","")

#赋值图书书名和评分

name <- q

rate <- r

#对p进行处理

#提取作者名字

p1 <-str_split_fixed(p,"/",2)

author <- p1[,1];

#提取翻译者名字

p2 <-str_split_fixed(p1[,2],"/",2)

a <-str_detect(p2[,1],"出版")

b <- str_detect(p2[,1],"书店")

interpre <-p2[,1]

interpre[a|b] <-"NA"

#提取出版商

p3 <-str_split_fixed(p2[,2],"/",2)

publisher <-p3[,1]

publisher[a] <-p2[a,1]

publisher[b] <-p2[b,1]

 

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值