我的目标是获得 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。以下代码片段显示了我可以访问的最后一个节点
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 使用了一个智能列表,当我向下滚动时,该列表会扩展。
(我知道我可以使用%>%
。我保存了每一步,以便我能够更轻松地访问和查看它们,从而能够了解它如何正常工作。)