Ryusuke Kenji
2010-Jul-03 00:08 UTC
[R] XML and RCurl: problem with encoding (htmlTreeParse)
Hi All, First method:->library(XML)>theurl <- "http://home.sina.com" >download.file(theurl, "tmp.html")>txt <- readLines("tmp.html")>txt <- htmlTreeParse(txt, error=function(...){}, useInternalNodes =TRUE)>g <- xpathSApply(txt, "//p", function(x) xmlValue(x))>head(grep(" ", g, value=T))[1] " | | ENGLISH" " " [3] " ()" " " [5] " " " ! ! !" SecondMethod:->library(RCurl)>theurl <- getURL("http://home.sina.com",encoding='GB2312')>Encoding(theurl)[1]"unknown">txt <- readLines(con=textConnection(theurl),encoding='GB2312') >txt[5:10] #show the lines which occurred encoding problem.[1] "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />" [2] "<title>SINA.com US -</title>" [3] "<meta name=\"Keywords\" content=\", , , ,, SINA, US, News, Chinese, Asia\" />" [4] "<meta name=\"Description\" content=\", 24, , , , , BBS, .\" />" [5]"" [6] "<link rel=\"stylesheet\" type=\"text/css\" href=\"http://ui.sina.com/assets/css/style_home.css\" />" i am trying to read data from a Chinese language website, but the Chinese characters always unreadable, may I know if any good idea to cope such encoding problem in RCurl and XML? Regards, Ryusuke _________________________________________________________________ [[alternative HTML version deleted]]
Duncan Temple Lang
2010-Jul-03 15:13 UTC
[R] XML and RCurl: problem with encoding (htmlTreeParse)
Hi Ryusuke I would use the encoding parameter of htmlParse() and download and parse the content in one operation: htmlParse("http://home.sina.com", encoding = "UTF-8") If you want to use getURL() in RCurl, use the .encoding parameter You didn't tell us the output of Sys.getlocale() or how your terminal/console is configured, so the above may vary under your configuration, but works on various machines for me with different settings. D. Ryusuke Kenji wrote:> > Hi All, > > First method:- > >library(XML) > > >theurl <- "http://home.sina.com" > >download.file(theurl, "tmp.html") > > >txt <- readLines("tmp.html") > > >txt <- htmlTreeParse(txt, error=function(...){}, useInternalNodes = > TRUE) > > >g <- xpathSApply(txt, "//p", function(x) xmlValue(x)) > > >head(grep(" ", g, value=T)) > > > [1] "?????? | ?????? | ENGLISH" "??????????????? ???????????????" > [3] "??????? ?????????? ??????????????????(???)" "?????????????????????????????? ????????????????????????" > [5] " ???????????????????????????????????????" "? ??????????! ????? ??????! ????????????????????????!" > > > > SecondMethod:- > >library(RCurl) > > >theurl <- getURL("http://home.sina.com",encoding='GB2312') > > >Encoding(theurl) > > [1]"unknown" > > >txt <- readLines(con=textConnection(theurl),encoding='GB2312') > >txt[5:10] #show the lines which occurred encoding problem. > [1] "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />" > [2] "<title>SINA.com US ????????? -??????</title>" > [3] "<meta name=\"Keywords\" content=\"????????????, ???????????????, ???????????????, ??????????????????,????????????, SINA, US, News, Chinese, Asia\" />" > [4] "<meta name=\"Description\" content=\"???????????????????????????????????????, ???????????????24????????????????????????????????, ????????????????????????, ????????????, ??????????????????, ????????????????????????, ?????????BBS, ???????????????????????????????????.\" />" > [5]"" > [6] "<link rel=\"stylesheet\" type=\"text/css\" href=\"http://ui.sina.com/assets/css/style_home.css\" />" > > i am trying to read data from a Chinese language website, but the Chinese characters always unreadable, may I know if any good idea to cope such encoding problem in RCurl and XML? > > > Regards, > Ryusuke > > _________________________________________________________________ > > > [[alternative HTML version deleted]] >> ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.-- "There are men who can think no deeper than a fact" - Voltaire Duncan Temple Lang duncan at wald.ucdavis.edu Department of Statistics work: (530) 752-4782 4210 Mathematical Sciences Bldg. fax: (530) 752-7099 One Shields Ave. University of California at Davis Davis, CA 95616, USA -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20100703/3120b3e5/attachment.bin>