【发布时间】:2020-07-21 23:05:15
【问题描述】:
我正在为瑞士的一些新闻网站构建一个网络爬虫。经过一些试验和错误以及 StackOverflow 的大量帮助(谢谢大家!),我已经到了可以从所有文章中获取文本数据的地步。
#packages instalieren
install.packages("rvest")
install.packages("tidyverse")
install.packages("dplyr")
library(rvest)
library(stringr)
#seite einlesen
apisrf<- read_xml('https://www.srf.ch/news/bnf/rss/1646')
urls_srf <- apisrf %>% html_nodes('link') %>% html_text()
zeit_srf <- apisrf %>% html_nodes('pubDate') %>% html_text()
#data.frame basteln
dfsrf_titel_text <- data.frame(Text = character())
#scrape
for(i in 1:length(urls_srf)) {
link <- urls_srf[i]
artikel <- read_html(link)
#Informationen entnehmen
textsrf<- artikel %>% html_nodes('p') %>% html_text()
#In Dataframe strukturieren
dfsrf_text <- data.frame(Text = textsrf)
dfsrf_titel_text <- rbind(dfsrf_titel_text, cbind(dfsrf_text))
}
运行它会给我 dfsrf_titel_text。 (我会在某个时候将它与文章的标题结合起来,但这就是我的问题。)
但是,现在我的数据非常凌乱,我无法真正弄清楚如何以某种方式清理它,以便它适合我。特别令人讨厌的是,来自不同文章的文本并没有真正以这种方式结构化,而是每当文本中有段落时都会换行。我无法合并段落,因为所有文本都有不同的长度。 (从第 3 点开始的第一篇文章非常长,因为它是涵盖电晕危机的实时行情,所以如果您运行我的代码,请不要混淆。)
只有当文本来自新文章(意味着来自新 URL?
感谢您的帮助!
【问题讨论】:
标签: r web-scraping text data-cleaning