RCurl处理汉字

时间:2014-03-07 07:11:29

标签: javascript r character-encoding rcurl

这是我的代码。为什么不能正确解码汉字:

    library(XML)
    require(RCurl)
    myURL <- "http://data.eastmoney.com/zjlx/600066.html"
    html <- getURL(myURL,.encoding = "gb2312")
    print(Encoding(html))
    basicInfo <- htmlParse(html)
    #print(Encoding(basicInfo))
    tables <- readHTMLTable(basicInfo)

2 个答案:

答案 0 :(得分:1)

问题是网站使用javascript动态地向表添加数据。如果您在禁用js的浏览器中加载页面,您会注意到您也看​​不到任何数据。

答案 1 :(得分:0)

我在javascript方面取得了一些有限的成功,但没有编码(在将字符编码提供给R时我不知道如何纠正字符编码有问题):

# On Windows install the packages and required files
require(devtools)
install_github('seleniumJars', 'LluisRamon')
install_github('relenium', 'LluisRamon')

# Load package
require(relenium)

# Start a new instance of Firefox (this must already be installed on your computer)
firefox <- firefoxClass$new()

# We go to the url using the function get.
firefox$get("http://data.eastmoney.com/zjlx/600066.html")

# The html from the webpage can be obtained with the getPageSource (and returning a "character") function.
html <- firefox$getPageSource()

# Parse the html using the XML package
doc <- htmlParse(html)

# Extract your table
tables <- readHTMLTable(doc, stringsAsFactors=FALSE)
mytable <- tables$dt_1

           V1    V2     V3          V4      V5           V6      V7          V8      V9         V10     V11          V12     V13
1  2014-07-24 18.30  2.81%  3893万  10.63%   -323万  -0.88%  4217万  11.52% -1600万  -4.37%  -2293万  -6.26%
2  2014-07-23 17.80 -0.50%  1287万   8.63%  27.48万   0.18%  1259万   8.44%  -333万  -2.24%   -953万  -6.39%
3  2014-07-22 17.89  4.25%  7765万  18.46%   5729万  13.62%  2036万   4.84% -4574万 -10.87%  -3190万  -7.58%

我不知道stringi包在这种情况下是否有用。它可以在Linux下运行(我经常发现Linux中的文本编码问题远远少于Windows,但这是轶事)。