【问题标题】:Empty nodes when scraping links with rvest in R在 R 中使用 rvest 抓取链接时的空节点
【发布时间】:2018-08-26 10:18:01
【问题描述】:

我的目标是通过标题获取所有 Kaggle 挑战的链接。我正在使用图书馆rvest,但我似乎并没有走远。当我在几个 div 中时,节点是空的。

我一开始尝试为第一个挑战做这件事,之后应该能够将其转移到每个条目。 第一项的xpath是:

/html/body/div[1]/div[2]/div/div/div[2]/div/div/div[2]/div[2]/div/div/div[2]/div/div/div[1]/a

我的想法是一旦我进入正确的标签,就通过html_attr( , "href") 获取链接。

我的想法是:

library(rvest)

url = "https://www.kaggle.com/competitions"
kaggle_html = read_html(url)
kaggle_text = html_text(kaggle_html)
kaggle_node <- html_nodes(kaggle_html, xpath = "/html/body/div[1]/div[2]/div/div/div[2]/div/div/div[2]/div[2]/div/div/div[2]/div/div/div[1]/a")
html_attr(kaggle_node, "href")

我无法越过某个 div。下面的 sn -p 显示了我可以访问的最后一个节点

node <- html_nodes(kaggle_html, xpath="/html/body/div[1]/div[2]/div")
html_attrs(node)

一旦我使用html_nodes(kaggle_html,xpath="/html/body/div[1]/div[2]/div/div") 更进一步,该节点将是空的。

我认为问题在于 kaggle 使用了一个智能列表,它会随着我向下滚动而扩展。

(我知道我可以使用%&gt;%。我正在保存每个步骤,以便我能够更轻松地访问和查看它们,以便能够了解它是如何正常工作的。)

【问题讨论】:

    标签: r web-scraping rvest


    【解决方案1】:

    我解决了这个问题。我认为我无法从 R 访问该站点的完整 html 代码,因为该表是由一个脚本加载的,该脚本会在用户滚动时扩展该表(因此是 HTML)。

    我解决了这个问题,手动展开表格,下载整个 HTML 网页并加载本地文件。

    【讨论】:

      猜你喜欢
      • 2019-01-19
      • 1970-01-01
      • 2017-09-13
      • 2021-09-04
      • 2015-04-28
      • 1970-01-01
      • 2020-01-30
      • 1970-01-01
      • 2019-07-21
      相关资源
      最近更新 更多