【发布时间】:2019-10-09 02:56:56
【问题描述】:
我想从墨西哥零售网页上抓取所有智能手机的名称。
我不知道为什么我的代码不起作用,因为我已经为类似的网页做过这个,显然 RVEST 没有“读取” html 代码的“类”。
使用 Google 选择器小工具,我发现智能手机名称在一个名为“.name”的类中,所以我尝试了这个:
url <- 'https://www.chedraui.com.mx/Departamentos/Tecnolog%C3%ADa/Telefon%C3%ADa/Celular/c/MC230202?siteName=Sitio+de+Chedraui&isAlcoholRestricted=false'
web <- read_html(url)
web %>%
html_nodes('.name') %>%
html_text()
但是结果是:''''
预期的结果是一个包含所有智能手机名称的向量。
【问题讨论】:
-
似乎这些节点是用javascript动态创建的。如果您只运行
web %>% html_nodes(".name")部分,您会发现您没有这些产品的节点,因此没有任何东西可以从中提取文本。关于使用 RSelenium 或其他有助于抓取动态页面的工具有很多问题 -
请花点时间接受过去的答案,如果它们有效,因为它有利于网站。您可以使用以下资源查看其工作原理:stackoverflow.com/help/someone-answers
-
@camile 谢谢,我会试试 RSelenium :D
-
@QHarr 会做的:)
标签: r web-scraping screen-scraping rvest