【问题标题】:Webscraping with R JSON使用 R JSON 进行网页抓取
【发布时间】:2017-03-15 04:13:46
【问题描述】:

我想通过 RegionName of role-player 两列获取公司名称。我已经在每个页面上找到了json 链接,但是使用RJSonio 它不起作用。它在收集数据,但我怎样才能将它变成可读的视图?谁能帮忙,谢谢。

这里是link

我从 Stackoverflow 上的另一个类似问题中尝试此代码

library(RJSONIO)

library(RCurl)

获取数据

raw_data <- getURL("http://www.milksa.co.za/admin/settings/mis_rest/webservicereceive/GET/index/page:1/regionID:7.json")
#Then covert from JSON into a list in R
data <- fromJSON(raw_data)

length(data)

final_data <- do.call(rbind, data)

head (final_data)

【问题讨论】:

  • 您需要展示一些您正在尝试开始工作的代码,以便我们可以帮助您回到正轨。
  • @bethanyP 知道了!

标签: r web-scraping


【解决方案1】:

我个人对此的偏好是使用库 jsonlite 而根本不使用 fromJSON

require(jsonlite)
data<-jsonlite::fromJSON(raw_data, simplifyDataFrame = TRUE)
finalData<-data.frame(cbind(data$rolePlayers$RolePlayer$orgName, data$rolePlayers$Region$RegionNameEng))
colnames(finalData)<-c("Name", "Region")  

它为您提供以下数据框:

                                   Name       Region
                GoodHope Cheese (Pty) Ltd Western Cape
                       Jay Chem (Pty) Ltd Western Cape
                Coltrade International cc Western Cape
 GC Rieber Compact South Africa (Pty) Ltd Western Cape
                    Latana Cheese Pty Ltd Western Cape
                       Marco Frischknecht Western Cape

可以在此处找到一种可视化查询方式和 JSON 字符串中内容的好方法:Chris Photo JSON viewer

您可以从raw_data 将其剪切并粘贴到那里(删除外部引号)。从那里可以很容易地了解如何使用寻址来构造数据,就像使用传统数据框和 $ 运算符一样。

【讨论】:

  • 太棒了!谢谢 BethanyP!
猜你喜欢
  • 2014-12-28
  • 2018-02-15
  • 2015-09-06
  • 2017-10-05
相关资源
最近更新 更多