Web の解析で文字化けが発生するのはなぜですか?
通常のキャラを手に入れたことがありますが、うまくいきencoding="big-5\\IGNORE"
ません。
require(XML)
url="http://www.hkex.com.hk/chi/market/sec_tradinfo/stockcode/eisdeqty_c.htm"
options(encoding="big-5")
data=htmlParse(url,isURL=TRUE,encoding="big-5\\IGNORE")
tdata=xpathApply(data,"//table[@class='table_grey_border']")
stock <- readHTMLTable(tdata[[1]], header=TRUE, stringsAsFactors=FALSE)
文字化けを正常に戻すには、コードをどのように修正すればよいですか?
@MartinMorgan(以下)の使用を提案
htmlParse(url,isURL=TRUE,encoding="big-5")
何が起こっているかの例を次に示します。
require(XML)
url="http://www.hkex.com.hk/chi/market/sec_tradinfo/stockcode/eisdeqty_c.htm"
options(encoding="big-5")
data=htmlParse(url,isURL=TRUE,encoding="big-5")
tdata=xpathApply(data,"//table[@class='table_grey_border']")
stock <- readHTMLTable(tdata[[1]], header=TRUE, stringsAsFactors=FALSE)
stock
合計レコード数は 1335 である必要があります。上記の場合は 309 です。多くのレコードが失われたようです。
これは複雑な問題です。いくつかの問題があります。
- 不適切な形式の html ファイル
Web は標準的な Web ではなく、整形式の html ファイルでもありません。私の主張を証明させてください。
実行してください:
url="http://www.hkex.com.hk/chi/market/sec_tradinfo/stockcode/eisdeqty_c.htm"
txt=download.file(url,destfile="stockbig-5",quiet = TRUE)
ダウンロードしたファイルstockbig-5
をfirefoxで開いてみてはどうですか?
R の Iconv 関数
のバグ html ファイルが整形式の場合、使用できますdata=readLines(file)
datachange=iconv(data,from="ソース エンコード",to="ターゲット エンコード\IGNORE")
html ファイルの形式が整っていない場合は、そのようにすることができます。この例では、
実行してください。
data=readLines(stockbig-5)
エラーが発生します。
1: In readLines("stockbig-5") :
invalid input found on input connection 'stockbig-5'
R で iconv 関数を使用して、不正な形式の html ファイルのエンコードを変更することはできません。
ただし、シェルでこれを行うことができます