R:在unicode中写csv,需要实际的文本

时间:2018-04-07 15:58:15

标签: r unicode web-scraping

我有以下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。谢谢!

1 个答案:

答案 0 :(得分:0)

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

Sys.setlocale("LC_CTYPE", "russian")

RusGeoDict <- data.frame(term_data_final, defn_data_final)

我刚尝试过,我觉得它有效。我不能确定地说。尝试并反馈您的发现。

最后,请参阅以下链接。其他想法。

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