【发布时间】:2020-06-25 10:40:27
【问题描述】:
我正在尝试使用 R 构建一个网络抓取工具,以抓取在新闻网站 www.20min.ch 上发布的文章。他们的 api 是可公开访问的,因此我可以创建一个包含标题、网址的数据框、描述和带有 rvest 的时间戳。下一步是访问每个链接并创建文章文本列表并将其与我的数据框结合起来。但是我不知道如何自动访问这些文章。理想情况下,我想读取_html链接1,然后用html节点复制文本,然后继续链接2...
这是我到目前为止写的:
site20min <- read_xml("https://api.20min.ch/rss/view/1")
site20min
url_list <- site20min %>% html_nodes('link') %>% html_text()
df20min <- data.frame(Title = character(),
Zeit = character(),
Lead = character(),
Text = character()
)
for(i in 1:length(url_list)){
myLink <- url_list[i]
site20min <- read_html(myLink)
titel20min <- site20min %>% html_nodes('h1 span') %>% html_text()
zeit20min <- site20min %>% html_nodes('#story_content .clearfix span') %>% html_text()
lead20min <- site20min %>% html_nodes('#story_content h3') %>% html_text()
text20min <- site20min %>% html_nodes('.story_text') %>% html_text()
df20min_a <- data.frame(Title = titel20min)
df20min_b <- data.frame(Zeit = zeit20min)
df20min_c <- data.frame(Lead = lead20min)
df20min_d <- data.frame(Text = text20min)
}
我需要的是 R 打开每个链接并提取一些信息:
site20min_1 <- read_html("https://www.20min.ch/schweiz/news/story/-Es-liegen-auch-Junge-auf-der-Intensivstation--14630453")
titel20min_1 <- site20min_1 %>% html_nodes('h1 span') %>% html_text()
zeit20min_1 <- site20min_1 %>% html_nodes('#story_content .clearfix span') %>% html_text()
lead20min_1 <- site20min_1 %>% html_nodes('#story_content h3') %>% html_text()
text20min_1 <- site20min_1 %>% html_nodes('.story_text') %>% html_text()
将它绑定到数据框应该不是什么大问题。但目前我的一些结果是空的。
感谢您的帮助!
【问题讨论】:
标签: r web web-scraping rvest