You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将爬取的17段USA Today文本合并为单文本并导出为.txt?

如何合并爬取的USA Today段落并导出为TXT文件?

您好,这是我首次发帖,若有疏漏恳请谅解。我需从USA Today爬取数据,已获取全部17个段落,但不知如何将这些段落合并为单一文本以导出为.txt文件,寻求技术帮助。相关代码如下:

USATodayURL <- 'https://www.usatoday.com/story/news/2018/04/05/youtube-shooter-legally-bought-handgun-reloaded-least-once-during-attack-police-say/490969002/'
text_USAToday <- USATodayURL %>% read_html() %>% html_node...

嘿,别担心,首次发帖完全没问题~我来帮你搞定这个问题!看起来你已经完成了最关键的爬取步骤,就差合并和导出这两步了,具体操作如下:

完整解决方案步骤

1. 完善爬取代码,提取所有段落文本

首先要注意:如果要获取多个段落,得用html_nodes()(复数形式)而不是html_node()(单数只会取第一个匹配的元素)。假设目标段落是<p>标签,代码可以这样写:

# 加载必备包
library(rvest)
library(stringr)

USATodayURL <- 'https://www.usatoday.com/story/news/2018/04/05/youtube-shooter-legally-bought-handgun-reloaded-least-once-during-attack-police-say/490969002/'

# 爬取所有段落文本
text_USAToday <- USATodayURL %>% 
  read_html() %>% 
  html_nodes("p") %>%  # 用html_nodes获取所有<p>标签的段落
  html_text()

如果网站的段落嵌套在特定容器里(比如带有article-body类的div),可以把选择器改成html_nodes(".article-body p"),这个可以通过浏览器开发者工具查看页面结构来确认。

2. 合并所有段落为单一文本

用stringr包的str_c()函数(或者基础R的paste())把所有段落合并,建议用换行符分隔,保留文章的段落结构:

# 合并段落,用两个换行符分隔(模拟文章段落间距)
combined_text <- str_c(text_USAToday, collapse = "\n\n")

# 如果需要清理多余的空白,可以加这一步
combined_text <- str_squish(combined_text)

3. 导出为TXT文件

用writeLines()函数就能轻松把合并后的文本写入TXT文件,它会保留我们设置的换行格式:

# 导出到当前工作目录下的usatoday_article.txt文件
writeLines(combined_text, "usatoday_article.txt")

如果你习惯用基础R的函数,也可以用write.table(),记得设置参数避免生成多余的格式:

write.table(combined_text, "usatoday_article.txt", row.names = FALSE, col.names = FALSE, quote = FALSE)

这样就能得到一个完整的文章TXT文件啦~

内容的提问来源于stack exchange,提问作者Ramiro Ferrando

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:04:58