[問題類型]:
程式諮詢(我想用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