前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【R语言】文本挖掘| 网页爬虫新闻内容

【R语言】文本挖掘| 网页爬虫新闻内容

作者头像
黑妹的小屋
发布2021-01-28 11:24:30
1.6K0
发布2021-01-28 11:24:30
举报

01

目标

读取该网页的新闻,包括新闻标题,发文日期,时间,每条新闻链接,文章内容

图1 网页部分截图

02

安装与加载包

代码语言:javascript
复制
install.packages("rvest")
library(rvest)

03

网页读取

代码语言:javascript
复制
url<-'https://www.thepaper.cn/'
web<-read_html(url)
news<-web%>%html_nodes('h2 a')

#用浏览器打开网页,右键单击-检查,查看网页源代码特点,可以知道每条新闻位于h2,a节点读取网页节点。

如何查看节点确定每篇新闻所在位置为'h2 a',详见视频:

关注公众号

后台回复【网页节点】查看视频

04

新闻题目title爬取

#获取title

代码语言:javascript
复制
title<-news%>%html_text()#读取新闻题目

#查看前6行题目特点

代码语言:javascript
复制
head(link)

图2 link数据特点

从link的数据结构看,我们只需要href,这个就是每个新闻对应的子链接,因此,我们要写一个循环,将link中的href提取出来。

代码语言:javascript
复制
link1<-c(1:length(link))
for(i in 1:length(link))
{link1[i]<-link[[i]][1]}

#查看link1特点

图3 link1数据特点

从link1来看,并不完全是链接格式,接下来利用paste将

代码语言:javascript
复制
https://www.thepaper.cn/与link1中的进行连接得到link2
link2<-paste("https://www.thepaper.cn/",link1,sep="")
link2

图4 link4结构特点

05

新闻发布日期date、时间time、内容content获取

代码语言:javascript
复制
news_date<-c(1:length(link2))
date<-c(1:length(link2))
news_time<-c(1:length(link2))
news_link<-c(1:length(link2))
news_content<-c(1:length(link2))
for(i in 1:length(link2))
{
  news_date[i]<-(read_html(link2[i])%>%html_nodes('div p')%>%html_text())[3]
  date[i]<-strsplit(news_date,split = " ")[[i]][25]
  news_time[i]<-strsplit(news_date,split=" ")[[i]][26]
  news_content[i]<-read_html(link2[i])%>%html_nodes(('div.news_txt'))%>%html_text()
}

#构建数据框

代码语言:javascript
复制
data_lxl<-data.frame(title,date,news_time,link2,news_content)
View(data_lxl)

图4 网页爬虫结果

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 菜鸟学数据分析之R语言 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档