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

R爬虫脚本数据导出:以Unicode编码写入CSV并保留实际文本

嘿,我来帮你完善这段R抓取脚本,还能解决Unicode编码写入CSV的问题,确保文本内容完整保留。下面是完整的实现方案:

完整的R抓取与Unicode写入脚本
library('rvest')

# 用列表存储数据比循环里不断扩展向量高效得多
term_list <- list()
defn_list <- list()

for (term in 1:10) {
  url_base <- 'http://www.nplg.gov.ge/gwdict/index.php?a=term&d=9&t='
  url <- paste(url_base, term, sep="")
  webpage <- read_html(url)
  
  # 抓取术语内容
  term_data_html <- html_nodes(webpage, '.term')
  term_data <- html_text(term_data_html)
  
  # 抓取定义内容(这里假设CSS选择器是.defn,你可以根据实际网站调整)
  defn_data_html <- html_nodes(webpage, '.defn')
  defn_data <- html_text(defn_data_html)
  
  # 过滤掉带问号的无效术语
  if (!grepl("\\?", term_data)) {
    term_list <- c(term_list, term_data)
    defn_list <- c(defn_list, defn_data)
  }
}

# 把收集到的整合成数据框
final_data <- data.frame(
  Term = unlist(term_list),
  Definition = unlist(defn_list),
  stringsAsFactors = FALSE
)

# 关键:用UTF-8编码写入CSV,保证Unicode文本不丢失
write.csv(final_data, file = "georgian_terms.csv", fileEncoding = "UTF-8", row.names = FALSE)
关键细节说明
  • 定义选择器调整:我假设定义内容的CSS选择器是.defn,如果实际网站的选择器不一样,你可以右键点击定义文本,用浏览器开发者工具查看元素,复制对应的CSS选择器替换进去就行。
  • 高效数据收集:原脚本里用c()不断扩展向量,数据量大的时候会很慢,换成列表存储最后再合并,性能会好很多。
  • Unicode保存核心:write.csv()里的fileEncoding = "UTF-8"是重中之重,它会让CSV文件以UTF-8编码保存,不管是格鲁吉亚语还是其他非ASCII字符,都能完整保留,不会出现乱码。
  • 数据一致性:只有当术语不含问号时才会保存对应的定义,避免出现有术语没定义或者反过来的情况。

另外提一句:如果用Excel打开这个CSV,记得导入时选择UTF-8编码,不然可能会显示乱码,但像R、Python、Notepad++这类工具都能直接识别UTF-8编码的文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:46:52