如何使用rvest刮取具有不同id的相同类型数据点

如何使用rvest刮取具有不同id的相同类型数据点,r,web-scraping,rvest,R,Web Scraping,Rvest,如果我想使用rvest来刮取本部分不同部分中重复的特定数据点(姓名、地址、电话等),则所有数据点都以类似的span id开始,但不完全相同,例如: docs-internal-guid-049ac94a-f34e-5729-b053-30567fdf050a docs-internal-guid-765e48e9-f34b-7c88-5d95-042a93fcfda3 最好的方法是什么?查找和复制每个id是不可行的。谢谢编辑: 您可以使用以下脚本检索全明星餐厅: library("rvest"

如果我想使用rvest来刮取本部分不同部分中重复的特定数据点(姓名、地址、电话等),则所有数据点都以类似的span id开始,但不完全相同,例如:

docs-internal-guid-049ac94a-f34e-5729-b053-30567fdf050a
docs-internal-guid-765e48e9-f34b-7c88-5d95-042a93fcfda3
最好的方法是什么?查找和复制每个id是不可行的。谢谢

编辑: 您可以使用以下脚本检索全明星餐厅:

library("rvest")

url_base <- "http://www.straitstimes.com/lifestyle/food/full-list-of-michelin-starred-restaurants-for-2017"
data <- read_html(url_base) %>%
   html_nodes("h3") %>%
   html_text()
library(“rvest”)
url_基数%
html_text()
这还提供了标题(“一颗米其林星”、“两颗米其林星”、“三颗米其林星”),但这可能会有所帮助

脚本的背景: 幸运的是,h3选择器中只有所有相关信息。该脚本将为您提供一个字符向量作为输出。当然,您可以使用%>%作为.data.frame()或以您希望的方式存储/处理数据的方式对此进行进一步阐述

-------------------旧答案-------------------


你能提供那个特定页面的url吗?对我来说,听起来你必须找到正确的css选择器(第n个孩子(x)),你可以在循环中使用。

我只是有点赶时间,但作为一个开始,你可以尝试通过h3:n个孩子(7)库(“rvest”)url\u test%html\u text()进行循环,谢谢!这已经是向前迈出的一大步。在我读到更多关于css和n_child如何工作的内容之前,我可以知道循环n个child(7)是什么意思吗?我是否用其他数字替换7?(sry浏览器崩溃):使用for循环“for(i in 1:x){}”通过相应的子选择器(在本例中为h3:n个child(i))以“i”进行迭代。有时不需要循环,而是提供一个包含所有相关信息的特定选择器,但是(根据我的一点经验)使用浏览器的“检查元素”功能更容易检索子oeprators:右键单击底部检查器中的元素->检查元素->选择突出显示的行(或者其他更合适的方法)右键单击->复制->CSS选择或真正感谢您对患者的指导。我将了解有关该儿童的更多信息。