使用XML我可以刮掉我需要的URL,但是当我使用xpathSApply它时,R会返回不需要的\n和\ t指示符(新行和制表符).这是一个例子:
doc <- htmlTreeParse("http://www.milesstockbridge.com/offices/", useInternal = TRUE) # scrape and parse an HTML site
xpathSApply(doc, "//div[@class='info']//h3", xmlValue)
[1] "\n\t\t\t\t\t\tBaltimore\t\t\t\t\t" "\n\t\t\t\t\t\tCambridge\t\t\t\t\t" "\n\t\t\t\t\t\tEaston\t\t\t\t\t" "\n\t\t\t\t\t\tFrederick\t\t\t\t\t"
[5] "\n\t\t\t\t\t\tRockville\t\t\t\t\t" "\n\t\t\t\t\t\tTowson\t\t\t\t\t" "\n\t\t\t\t\t\tTysons Corner\t\t\t\t\t" "\n\t\t\t\t\t\tWashington\t\t\t\t\t"
Run Code Online (Sandbox Code Playgroud)
正如这个问题所解释的那样,正则表达式函数可以轻松删除不需要的格式元素, 如何删除网站数据收集结果中的\n\t\t\tt?但我宁愿xpath首先做的工作,如果可能的话(我有数百个这样解析).
此外,还有一些功能,例如translate,在这个问题中:
使用Translate函数删除xml中的换行符,但是如何忽略某些标签?以及strip()我在Python问题中看到的内容.我不知道使用R和xpath时哪些可用.
它可能是一个text()函数有帮助,但我不知道如何将它包含在我的xpathSApply表达式中.同样地normalize-space().
您只想trim = TRUE在xmlValue()通话中争论。
> xpathSApply(doc, "//div[@class='info']//h3", xmlValue, trim = TRUE)
#[1] "Baltimore" "Cambridge" "Easton"
#[4] "Frederick" "Rockville" "Towson"
#[7] "Tysons Corner" "Washington"
Run Code Online (Sandbox Code Playgroud)