我正在尝试阅读以下包含R中日文和英文文本的CSV文件,构建一个URL并检索结果。
数据看起来像这样;
ID,AutoG1,AutoG2
8756,Pocket Card,ポケットカード
4574,Takara Standard,タカラスタンダード
我试图运行的代码如下;
>library(XML)
>library(RCurl)
>
>data<-read.csv("test.csv")
>url <- paste("suggestqueries.google.com/complete/search?output=toolbar&hl=jp&qu=",data[1,"AutoG2"],sep="")
>url
"suggestqueries.google.com/complete/search?output=toolbar&hl=jp&qu=ポケットカード"
>result <-getURL(URLencode(url),.opts=opts)
>doc <- xmlRoot(xmlTreeParse(result))
>length(zzdoc)
0
结果应该看起来像this,这表明实际上有10个结果。
我认为解决这个问题的一个线索是了解内部如何表示url变量。如果我直接使用URL字符串;
>url2 <- "suggestqueries.google.com/complete/search?output=toolbar&hl=jp&qu=ポケットカード"
>zz <-getURL(URLencode(url2),.opts=opts)
>zzdoc <- xmlRoot(xmlTreeParse(zz))
>length(zzdoc)
10
我得到了想要的结果,但我需要使用类似第一个代码片段的方式以编程方式获得这些结果。 url和url2看起来很相似,但在内部它们是不同的,我认为是由于编码。
>url==url2
FALSE
>Encoding(url)
"unknown"
>Encoding(url2)
"UTF-8"
我试图强制编码;
> Encoding(url)<-"UTF-8"
> url
"suggestqueries.google.com/complete/search?output=toolbar&hl=jp&qu=\u0083|\u0083P\u0083b\u0083g\u0083J\u0081[\u0083h"
> zz <-getURL(URLencode(url),.opts=opts)
Warning message:
In strsplit(URL, "") : input string 1 is invalid UTF-8
似乎也不起作用。 有人可以提供任何建议吗?
答案 0 :(得分:0)
我认为你需要包含&#34; http://&#34;您的代码与
一起使用url <- paste("http://suggestqueries.google.com/complete/search?output=toolbar&hl=jp&qu=",data[1,"AutoG2"],sep="")
作为参考,Nippon软件包非常适合切换编码