6

StackOverflow用のRAPIを作成しようとしています。出力はgzipで圧縮されます。例えば:

readLines("http://api.stackoverflow.com/0.9/stats/", warn=F)
[1] "\037‹\b"                                                                                                                                                                                                                                                                                         
[2] "\030\002úØÛy°óé½\036„iµXäË–[<üt—Zu[\\VmÎHî=ÜÛݹ×ýz’Í.äûû÷>ý´\a\177Ýh÷\017îÝÛÙwßÚáÿþ«¼þý\027ÅrÝæÔlgüÀëA±\017›ìŽï{M¤û.\020\037�Ë\"¿’\006³ì\032„Úß9¸ÿ`¼ç÷³*~ÿKêˆð¡\006v¦ð²ýô£�ñÃ�ì+ôU�_\026滽�]êt¼·?ÞûÈ4ù%\016~S0^>àe¶ÀG\037½n³éÛôKê缬®‚\016Êê¢úý×u‰fó¶]=º{·aÎšŽ—y{·©î\026‹‹»h5^-/‚W1 |9[UŲõ^§�Ç"
[3] ":¬´¿1M\177ð\"0íö¹ñ…YÞLëbÕ*!~â\027\036§çU�®êê¢ÎˆµhòýæÅ´Zn\036S¶Z•ùv[­§óm´î�"                                                                                                                                                                                                                      
[4] "Í™t˪^d¥£·üÂ?¾ÿ\033'¿$ù\177"  

これをRでgunzipする良い方法はありますか?出力をファイルに書き込み、gunzipして、読み戻す以外にありますか?

4

3 に答える 3

11

あなたができること:

conn <- gzcon(url("http://api.stackoverflow.com/0.9/stats/"))
data <- readLines(conn)
于 2010-06-27T19:54:07.067 に答える
5

試す:

p <- gzcon(url("http://api.stackoverflow.com/0.9/stats/"))
readLines(p)
于 2010-06-27T20:09:16.143 に答える
4

理想的には、gzipで圧縮されたコンテンツを処理できることをサーバーに通知し、HTTPヘッダーから、コンテンツが実際にgzipでエンコードされていることを確認し、そうである場合にのみ解凍する必要があります。Rcurlライブラリはこれを行うことができます:

library(Rcurl)
getURL("http://api.stackoverflow.com/0.9/stats/",
       .opts=list(encoding="identity,gzip")
于 2010-06-28T04:37:28.860 に答える