【R语言爬虫】使用rvest包爬取豆瓣读书Top 250,仅需50行代码(速度挺快)
library(rvest)
library(dplyr)
library(stringr)
# 定义一个函数来提取每本书的详细信息
get_info <- function(url) {
page <- read_html(url)
data.frame(
title = page %>% html_nodes("h1 a") %>% html_text(),
author = page %>% html_nodes("div.info div.indent span:nth-child(1) a") %>% html_text(),
rating = page %>% html_nodes("strong.ll rating_num") %>% html_text(),
votes = page %>% html_nodes("span.pl:nth-child(4) a") %>% html_text() %>% str_extract("\\d+"),
comment = page %>% html_nodes("span.pl:nth-child(5)") %>% html_text() %>% str_extract("\\d+"),
stringsAsFactors = FALSE
)
}
# 爬取豆瓣读书Top 250
urls <- paste0("https://book.douban.com/top250?start=", seq(0, 2250, by = 25))
book_info <- lapply(urls, get_info) %>% bind_rows()
# 保存结果
write.csv(book_info, file = "douban_top250.csv", row.names = FALSE)
这段代码使用了rvest
包来解析网页,并定义了一个函数get_info
来提取每本书的标题、作者、评分、票数和评论数。然后通过一个URL列表进行遍历,并将结果合并为一个数据框,最后将数据保存到CSV文件中。这个过程展示了如何使用R快速高效地进行网页爬取,并且代码简洁,易于理解。
评论已关闭