利用R语言的rvest包,获取所需的数据

利用R语言的rvest包,获取所需的数据

前言

最近迷上网路小说,一开始是在微信上的公众号去浏览,后来因为后面的章节都需要付费,所以就上一些网站看看,发现很多网站其实都有这些文章了,有的还提供了整个文档的下载。一开始我是下载txt文档到手机上看,但又发现下载的txt文档,很多有遗漏的,于是就更进一步的想从网站上直接抓取下来。

准备工作

  1. 安装R包官网下载
  2. 安装R Studio, 官网下载
    在这里插入图片描述
  3. 安装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()
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值