【发布时间】:2018-10-19 13:38:21
【问题描述】:
我在寻找店铺名称和店铺坐标来自:http://contact.woolworths.com.au/storelocator/service/proximity/supermarkets/latitude/-37.7510/longitude/144.8981/range/50/max/200.xml
例如<name>Niddrie</name><latitude>-37.737332</latitude><longtitude>144.892342</longtitude>
我该怎么做?我试过这些:
library(XML)
library(methods)
library(xml2)
#https://stackoverflow.com/questions/17198658/how-to-parse-xml-to-r-data-frame
data <- xmlParse("http://contact.woolworths.com.au/storelocator/service/proximity/supermarkets/latitude/-37.7510/longitude/144.8981/range/50/max/200.xml")
xml_data <- xmlToList(data)
location <- as.list(xml_data[["storeList"]][["storeRank"]][["storeDetail"]][["Name"]])
#https://www.datacamp.com/community/tutorials/r-data-import-tutorial#xml - not working
xmlfile <- xmlTreeParse("http://contact.woolworths.com.au/storelocator/service/proximity/supermarkets/latitude/-37.7510/longitude/144.8981/range/50/max/200.xml")
class(xmlfile)
topxml <- xmlRoot(xmlfile)
topxml <- xmlSApply(topxml,
function(x) xmlSApply(x, xmlValue))
xml_df <- data.frame(t(topxml),
row.names=NULL)
两者都没有错误,但不是我想要的名称。与坐标相同。
【问题讨论】:
-
Point 21 (h) on woolworths.com.au/Shop/Discover/about-us/terms-and-conditions 表明尽管woolworths.com.au/robots.txt 中没有技术控制,但这样做是不道德或合法的,除非您使用 API developer.woolworths.com.au(您能否确认您'正在使用 API 与抓取?)
-
我在刮。像我们这样的人不就是这样做的吗?
-
我看不到从抓取中获取 XML 的方法(只有 API 似乎有一个返回 XML 的“服务”)。而且,仅仅因为您可以刮刮,这样做并不道德或合法。
-
注明。感谢您的建议。
标签: r xml xml-parsing