我想分析一下日本网站上关于东京房屋销售的一些数据。代码如下所示:
library(XML)
library(bitops)
library(RCurl)
library(httr)
orgURL1 = 'http://www.stepon.co.jp/search/list/?pageNo=2&limit=100&prefCityCd=13_101&prefCityCd=13_103&prefCityCd=13_102&prefCityCd=13_104&prefCityCd=13_113&prefCityCd=13_105&prefCityCd=13_116&prefCityCd=13_117&prefCityCd=13_119&prefCityCd=13_108&prefCityCd=13_107&prefCityCd=13_106&prefCityCd=13_118&prefCityCd=13_123&prefCityCd=13_121&prefCityCd=13_122&prefCityCd=13_109&prefCityCd=13_110&prefCityCd=13_111&prefCityCd=13_112&prefCityCd=13_114&prefCityCd=13_115&prefCityCd=13_120&hanbaiKakakuMin=&hanbaiKakakuMax=&senyuMensekiMin=&senyuMensekiMax=&tohoTime=&chikunensu=&chijoKaiso=&souKosu=&floor=&mansionNm=&searchType=area&prefCd=13&type=mansion'
pttURL <- paste(orgURL1)
urlExists <- url.exists(pttURL)
alldata = data.frame()
html <- getURL(pttURL)
xml <- htmlParse(html, encoding = 'jis')
allinfo = xpathApply(xml,"//*/div/div/dl[@class='clearfix']",xmlValue)
tempdata = cbind(allinfo)
alldata = rbind(tempdata)但解析后的数据显示为一些不可读的字符,如下所示:
> head(allinfo)
[[1]]
[1] "i\n    \t\t\t\t\t\t\t\t\t1,500~\n    \t\t\t\t\t\t\t\t"
[[2]]
[1] "Yn\n    \t\t\t\t\t\t\t\t\ts`aOaXU\n    \t\t\t\t\t\t\t\t"
[[3]]
[1] "eE\n    \t\t\t\t\t\t\t\t\tgcacuuTOavwaeka3agcacuuOavwaeka9aguaJuuZ{Ovwaeka9a\n    \t\t\t\t\t\t\t\t"
[[4]]
[1] "Oae/eLEI\n    \t\t\t\t\t\t\t\t\t[\xc2\u0080 / 20.46m簡\n    \t\t\t\t\t\t\t\t"
[[5]]
[1] "YKiuj\n    \t\t\t\t\t\t\t\t\t1Kaij/na6KA\n    \t\t\t\t\t\t\t\t"
[[6]]
[1] "zN\n    \t\t\t\t\t\t\t\t\t1977N05z\n    \t\t\t\t\t\t\t\t"我想这应该与编码有关,但我尝试了“shift-jis”,但它不起作用。
我在解析方面是新手...任何帮助都将深表感谢。
发布于 2017-08-27 11:08:26
您应该传递指定rcurl中的编码参数。
html <- getURL(pttURL,.encoding='shift_jis')
xml <- htmlParse(html)否则,html输入是像<meta content=\"\u0090ç\u0091ã\u0093c\u008bæ,\u0092\u0086\u0089\u009b\u008bæ,\u0093\u008c\u008b\u009e\u0093s,\u0092\u0086\u008cÃ\u0083}\u0083\u0093\u0083V这样的错误字符串(注意,它不是原始的二进制数据)。
当然,你不能得到正确的结果。
发布于 2017-08-27 11:14:16
我不能让你的原始版本工作,但这里有一个移植到rvest的版本:
library(rvest)
orgURL1 = 'http://www.stepon.co.jp/search/list/?pageNo=2&limit=100&prefCityCd=13_101&prefCityCd=13_103&prefCityCd=13_102&prefCityCd=13_104&prefCityCd=13_113&prefCityCd=13_105&prefCityCd=13_116&prefCityCd=13_117&prefCityCd=13_119&prefCityCd=13_108&prefCityCd=13_107&prefCityCd=13_106&prefCityCd=13_118&prefCityCd=13_123&prefCityCd=13_121&prefCityCd=13_122&prefCityCd=13_109&prefCityCd=13_110&prefCityCd=13_111&prefCityCd=13_112&prefCityCd=13_114&prefCityCd=13_115&prefCityCd=13_120&hanbaiKakakuMin=&hanbaiKakakuMax=&senyuMensekiMin=&senyuMensekiMax=&tohoTime=&chikunensu=&chijoKaiso=&souKosu=&floor=&mansionNm=&searchType=area&prefCd=13&type=mansion'
html <- read_html(orgURL1)
text <- html %>% 
    html_nodes(xpath = "//*/div/div/dl[@class='clearfix']") %>%
    html_text(trim = TRUE)
head(text)
#> [1] "価格\n    \t\t\t\t\t\t\t\t\t4,200万円"                                
#> [2] "所在地\n    \t\t\t\t\t\t\t\t\t東京都足立区島根4丁目"                 
#> [3] "交通\n    \t\t\t\t\t\t\t\t\t東武伊勢崎・大師線「西新井」駅より徒歩8分"
#> [4] "間取り/専有面積\n    \t\t\t\t\t\t\t\t\t2LDK / 73.51m²"                
#> [5] "所在階(向き)\n    \t\t\t\t\t\t\t\t\t1階部分(南)/地上10階建て"     
#> [6] "築年月\n    \t\t\t\t\t\t\t\t\t2011年02月築"您看到的内容可能与区域设置有关,如果您没有可用的CJK字体,则很明显不会正确显示。
https://stackoverflow.com/questions/45901310
复制相似问题