当前位置: 首页 > 知识库问答 >
问题:

带RVest的卷筒纸刮板GameGeek

容远
2023-03-14

我在下面提供了一些示例,但是我需要清除大部分可用的数据元素,所以不是寻找复制和粘贴的代码,而是寻找最好的方法。见下文。

链接:https://boardgamegeek.com/boardgame/63888/innovation

我试图从中提取的HTML示例。Span没有返回html_nodes,所以我无法从那里开始。

<span ng-if="min > 0" class="ng-binding ng-scope">45</span>
<a title="Civilization" ng-href="/boardgamecategory/1015/civilization" class="ng-binding" href="/boardgamecategory/1015/civilization">Civilization</a>
<script type="text/javascript" src="https://cf.geekdo-static.com/static/geekcollection_master2_5e84926ab7e90.js"></script>
\"minplaytime\":\"30\" OR {\"name\":\"Deck, Bag, and Pool Building\"

我假设这是JSON?有没有一种方法来解析html_text输出,或者另一种方法?使用V8只是在页面顶部快速使用javascript更容易吗?这方面有没有一个简单的指南?

共有1个答案

辛承志
2023-03-14

你知道BGG有API吗?文档可在以下网址找到:URL

代码将以XML文件的形式提供。因此,对于您的示例,您可以获得您的游戏的ID-您的示例是63888(它在URL中)。因此xml文件可在以下网址找到:https://www.boardgamegeek.com/xmlapi2/thing?id=63888

您可以使用以下代码阅读信息:

library(dplyr)
library(rvest)

game_data <- read_xml("https://www.boardgamegeek.com/xmlapi2/thing?id=63888")
game_data %>% 
  html_nodes("name[type=primary]") %>% 
  html_attr("value") %>% 
  as.character()
#> [1] "Innovation"
 类似资料:
  • 嗨,我终于能够设置我的webscraper,并将数据导入到我的网页中:) 但是我的网页在端口3001上运行,而网页刮刀在端口8080上运行,我有点困惑,我怎么能设置一个计时器来更新后台的刮刀? Scraper.js 弗雷德里克

  • 初学者。我想提取巴克莱的所有作业(https://search.jobs.Barclays/search-jobs) 我通过刮了第一页,但挣扎着去下一页,因为url没有改变。我试着在下一页按钮上刮url,但那个href把我带回主页。 这是否意味着所有的职务数据实际上都存储在原始HTML中?如果是,我该如何提取? 谢谢!

  • Spring Web应用程序只是一个使用servlet API 3.0的普通Web应用程序。 在servlet API 3.0中web.xml文件是可选的(大多数时候)。我试图在我的Spring应用程序中不包含web.xml,但不知何故,即使使用Servlet 3.0,它似乎也是必需的 Spring应用程序和我在没有编写web.xml文件的情况下成功运行的Web应用程序之间的唯一区别是,在Spri

  • 理想情况下,我的最终数据帧将如下所示: 我已经挣扎了一段时间,现在让这个工作,并将感谢任何帮助。

  • 我对docker比较陌生。我想建立一个postgres数据库,但我想知道如果我重新创建容器,如何确保数据不会丢失。 然后我偶然发现了命名卷(不是绑定卷)以及如何使用它们。但是...在Dockerfile中,您不能使用命名卷。例如data:/var/lib等。正如我使用Dockerfile所理解的那样,它总是一个匿名卷。所以每次我重新创建一个容器时,它都会得到自己的新卷。 所以我的问题来了: 首先: