我希望从日本网站上解析东京房屋销售的一些数据。 代码如下:
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"
我想它应该与编码有关,但我已经尝试过&#39; shift-jis&#39;它没有用。
我是解析的新手...... 任何帮助都将深表感谢。
答案 0 :(得分:0)
您应该在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
(注意它不是原始二进制数据)。
当然,你无法得到正确的结果。
答案 1 :(得分:0)
即使你已经得到它,我也无法让你的原版工作,但这里有一个移植到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字体,显然无法正常显示。