谷歌搜索结果编码中文

时间:2012-05-21 15:27:35

标签: r encoding character-encoding google-search rcurl

所有

我一直致力于谷歌搜索数据挖掘的 R 计划 到目前为止,我的代码运行良好,除了繁体中文编码问题。 我在linux环境下工作......

Google <- function(input)
  {
   require(XML)
   require(stringr)
   require(RCurl)
   hits <- GoogleHits(input)
   if( hits >= 1000){
      start.num = seq(0,900,100) 
  }else if(hits < 1000){
      start.num = seq(0,hits,100) 
  }
  for(i in 1:length(start.num)){
       start = start.num[i] 
       url <-paste("https://www.google.com/search?as_epq=",input,
       "&as_occt=title&num=100&ie=UTF-8&start=",start, sep = "")   


   CAINFO = paste(system.file(package="RCurl"), "/CurlSSL/ca-bundle.crt", sep = "")
   script <- getURL(url, followlocation = TRUE, cainfo = CAINFO)

   # using htmlParse() to re-organize the whole structure
   # the Chinese encoding shows quite well here 
   # (but the structure is not a vector)     
   doc <- htmlParse(script)

   # Wanna extract out the searched keyword
   # which is tagged by "<b>keyword</b>"
   # here, I take the keyword "統計" for example
   extract <- str_extract_all(html_str, "<b>統計</b>")

   # here is the problem... which extract only takes a vector as an argument
   # so below will return an error
   print (extract)

}
  }

因此,我遇到的问题都包含在评论中。

1)如果不使用 htmlParse(),则提取的数据无法呈现为已识别的中文字符

2)如果我尝试将数据转换为矢量(通过应用脚本&lt; - lapply(url,getURL)),尽管 str_extract_all()方法,编码问题出现......

另外,我所说的中文是繁体中文

任何意见或建议都非常感谢!
提前谢谢。

1 个答案:

答案 0 :(得分:2)

我发现了这个错误!喽!
所以我在这里回答这个问题。

问题是给定网址链接中的参数!

由于中文的编码是UTF-8,
有两个必要的参数,
oe = UTF-8&amp; ie = UTF-8 !!
(在谷歌的开发者网站上,
它表示不需要指定 oe = UTF-8
这就是我跳过这部分的原因......)