用rvest包爬取豆瓣图书数据

来源:互联网 发布:8管脚单片机 编辑:程序博客网 时间:2024/05/22 15:17

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


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]

 

#提取出版时间

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

publish_time <-p4[,1]

publish_time[a]<- p3[a,1]

publish_time[b]<- p3[b,1]

publish_time <- str_replace(publish_time,"","-")

publish_time <- str_replace(publish_time,"","-")

 

#提取价格

p5 <-str_split_fixed(p4[,2],"/",2)

price <- p5[,1]

price[a] <-p4[a,1]

price[b] <-p4[b,1]

 

#创建数据框存储以上信息

 

book <-data_frame(name,rate,author,interpre,publisher,publish_time,price)

book_inf <-rbind(book_inf,book)

}

 

#对于少数不合规则的数据进行处理

book_inf[52,5:7]<- book_inf[52,4:6]

book_inf[52,4] <-"NA"

 

book_inf[136,5:7]<- book_inf[136,4:6]

book_inf[136,4]<- "NA"

 

#根据出版社进行分析

a <-summarise(group_by(book_inf,publisher),count = n())

arrange(a,desc(count))

 

#根据出版时间进行分析

b<-str_split_fixed(book_inf$publish_time,"-",2)

b <- b[,1]

table(b)


分析:

  1. 根据图书出版的出版社进行分析,希望得到哪些出版社更容易出版好书

由于出版社有80个,因此,此处只截取出版好书数量大于等于5本的出版社进行分析

 

                

出版社

好书数量

占250本书的比例

1

人民文学出版社

29

11.6%

2

上海译文出版社

23

9.2%

3

南海出版公司

22

8.8%

4

长江文艺出版社

13

5.2%

5

译林出版社

9

3.6%

6

中国友谊出版公司

9

3.6%

7

作家出版社

9

3.6%

8

北京十月文艺出版社

8

3.2%

9

生活·读书·新知三联书店

8

3.2%

10

春风文艺出版社

5

2.0%

11

新世界出版社     

5

2.0%


 

 

  1. 根据图书出版时间进行分析,希望得到好书出版时间的规律:从图中可以看出,2007年出版的好书最多,且1997年至2011年,出版的好书都高于平均值(8本),除了2006年。

原创粉丝点击