R:用Unicode编写csv,需要实际的文本



我有以下R脚本用于从网站抓取一些文本数据。

library('rvest')
term_data_final <- c()
defn_data_final <- c()
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)
    if (!grepl("\?", term_data)) {
        term_data_final <- c(term_data_final, term_data)
        defn_data_html <- html_nodes(webpage, '.defnblock')
        defn_data <- html_text(defn_data_html)
        defn_data_final <- c(defn_data_final, defn_data)
    }   
}
RusGeoDict <- data.frame(term_data_final, defn_data_final)
write.csv(RusGeoDict, file = 'RusGeoDict.csv', fileEncoding="UTF-8")

脚本将抓取的数据合并到数据帧中,然后将该数据帧写入 csv 文件。抓取的文本是俄语和格鲁吉亚语字符,当保存到数据帧和 csv 时,我得到的不是文本,而是格式的十六进制 unicode:.当我输出在合并到数据帧之前创建的列表时,例如term_data_final我得到原始文本,但是一旦我保存到数据帧并输出到 csv 文件,我就会得到 unicode。有没有办法在没有 unicode 输出的情况下将格鲁吉亚语和俄语字符的原始文本保存到 csv。谢谢!

好吧,我不懂任何俄语,但我认为您可以在运行脚本之前设置 GeoDict,对吧。

Sys.setlocale("LC_CTYPE", "russian")
RusGeoDict <- data.frame(term_data_final, defn_data_final)

我刚刚尝试过,我认为它正在工作。 不过我真的不能肯定地说。 尝试一下并反馈您的发现。

最后,请参阅下面的链接。 以获取其他想法。

https://www.r-bloggers.com/r-and-foreign-characters/

最新更新