R语言rvest-爬取网路小说
利用R语言的rvest包,获取所需的数据
前言
最近迷上网路小说,一开始是在微信上的公众号去浏览,后来因为后面的章节都需要付费,所以就上一些网站看看,发现很多网站其实都有这些文章了,有的还提供了整个文档的下载。一开始我是下载txt文档
到手机上看,但又发现下载的txt文档
,很多有遗漏的,于是就更进一步的想从网站上直接抓取下来。
准备工作
- 安装R包,官网下载
- 安装R Studio, 官网下载
- 安装rvest包,在R Studio 执行下面语法!
install.packages("rvest") install.packages("xml2")
进行数据抓取
由于我已经追到最新的了,所以下面的代码是针对最新的章节进行抓取
library(rvest)
library(stringr)
library(xml2)
roothtml <- "https://www.bbiquge.com/book_46894/"
books_index<-read_html(roothtml)
list_data <- html_nodes(books_index,'div.box_con div#list dd a') %>%
html_text()
link_url <- str_c(roothtml,html_nodes(books_index,'div.box_con div#list dd a') %>%
html_attr("href"))
bookdata<-data.frame(
iPage = as.numeric(str_extract(list_data,"\\d+")),
title = list_data,
href = link_url,
content = "")
bookdata$content<-as.character(bookdata$content)
lastdata<-tail(bookdata,1) #只取最后一笔,具体可以根据需要调整
lastdata$content <-str_c(lastdata$title,lapply(as.character(lastdata$href), function(url){
read_html(url) %>%
html_nodes("div.content_read div#box_con div#content") %>%
html_text() %>%
as.character()
}))
lastdata$content<-gsub("一秒记住【笔趣阁 www.bbiquge.com】,精彩小说无弹窗免费阅读!","",lastdata$content) #替换文字
a<-as.character(lastdata$content)
sfile<-"d:/file_new.txt" #生成文字档
sink(sfile)
cat(a)
sink()