这是我的代码。为什么不能正确解码汉字:
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)
答案 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,但这是轶事)。