[问题类型]:
程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
[软件熟悉度]:
入门(写过其他程式,只是对语法不熟悉)
[问题叙述]:
最近开始在学用R写爬虫,而今天下午试着要爬证交所的股票代码列表时发现他们似乎
是使用MS950编码,但是这个编码R却无法认得。(参见程式码部分)
后来还有试过用utf-8和big5硬推,也试着用tmcn去转码,但是中文部分还是只得到乱码。
因此想请问是否有什么方法可以绕过这个问题?
(把原网页资料抓下来存成csv转码后再丢给R不在考虑之列)
[程式范例]:
只附上一开始用MS950的程式码,big5和utf-8的结果大同小异。
另外最后res和ress的output不知道为什么无法完整贴上,但总之遇到中文都是乱码就是了
> rm(list=ls())
>
> library(tmcn)Q
> library(httr)
> library(rvest)
> library(stringr)
> library(magrittr)
>
> r<-GET("http://isin.twse.com.tw/isin/C_public.jsp?strMode=2")
> r
Response [http://isin.twse.com.tw/isin/C_public.jsp?strMode=2]
Date: 2015-12-29 10:15
Status: 200
Content-Type: text/html;charset=MS950
Size: 2.69 MB
Unknown encoding MS950. Defaulting to latin1 (ISO-8859-1).
<link rel="stylesheet" href="http://www.tse.com.tw/style1.css" type=...
<body><table align=center><h2><strong><font class='h1'>¥蠊
> res<-r$content%>%read_html(encoding="MS950")%>%
+ html_node(".h4")%>%html_nodes(xpath="tr")%>%html_text()
> ress<-toUTF8(res)
> res[1:5]
[1] "础粮坛罗\xc3砥国并怏代绣缯瞻\xc3缃名繙\xc3\x99 箪碍坛\xc3斾砥国并怏萤姻砥
'蜃嗽码(ISIN Code)瞻W睑窜瞻蒙睑窜粮茧礼O简瞿缭~礼OCFICode粮\xc3屡腕\xb9"
[2] " 秾\xc3'笨\xbc "
[3] "1101 愈@睑x秾dTW00011010041962/02/09瞻W睑窜瞻系秾d瞻u缭~ESVUFR"
[4] "1102 愈@穑\xc3鱿泥TW00011020021962/06/08瞻W睑窜瞻系秾d瞻u缭~ESVUFR"
[5] "1103 愈@缯\xc3埘泥TW00011030001969/11/14瞻W睑窜瞻系秾d瞻u缭~ESVUFR"
> ress[1:5]
[1] "| 3 睑N绣缯瞻\xc3缃名繙\xc3\x99 箪碍坛\xc3斾
[2] " ªÑ2 ¼ "
[3] "1101 !
[4] "1102 !
[5] "1103 !
[环境叙述]:
Win7 64位元
R 3.2.3 (2015/12/10)
[关键字]:
中文编码 MS950 tmcn