【发布时间】:2015-07-03 20:41:45
【问题描述】:
我在 R 中使用rvest 进行一些抓取。我知道一些 HTML 和 CSS。
我想获取一个 URI 的每个产品的价格:
http://www.linio.com.co/tecnologia/celulares-telefonia-gps/
当您在页面上向下移动时(当您进行一些滚动时),新项目会加载。
到目前为止我做了什么:
Linio_Celulares <- html("http://www.linio.com.co/celulares-telefonia-gps/")
Linio_Celulares %>%
html_nodes(".product-itm-price-new") %>%
html_text()
我得到了我需要的东西,但仅适用于前 25 个元素(默认加载的那些)。
[1] "$ 1.999.900" "$ 1.999.900" "$ 1.999.900" "$ 2.299.900" "$ 2.279.900"
[6] "$ 2.279.900" "$ 1.159.900" "$ 1.749.900" "$ 1.879.900" "$ 189.900"
[11] "$ 2.299.900" "$ 2.499.900" "$ 2.499.900" "$ 2.799.000" "$ 529.900"
[16] "$ 2.699.900" "$ 2.149.900" "$ 189.900" "$ 2.549.900" "$ 1.395.900"
[21] "$ 249.900" "$ 41.900" "$ 319.900" "$ 149.900"
问题:如何获取这个动态部分的所有元素?
我想,我可以滚动页面直到所有元素都加载完毕,然后使用 html(URL)。但这似乎需要做很多工作(我计划在不同的部分这样做)。应该有一个程序化的工作。
【问题讨论】:
-
您需要使用 XPath(在 R 中或 R 之外)——查看
XML包。 -
Rvest不能做吗?我已经看到 Rvest 导入 XML。我读过一些关于 XML 的东西。但我是示例中的 URL,我没有从 XML 中看到这个元标记。你能帮帮我吗?
-
在这里,我想这可能会帮助你在
rvest:stackoverflow.com/questions/27812259/… -
@Hack-R。我看过你的例子,但我所拥有的有点不同。在我的示例中,没有“下一步”按钮或“第 2 页”。但是,我看到一个 :"Página 4"(从 2 变为 X)在我滚动时激活。如果您有任何其他提示会很好。
-
@OmarGonzales 您可能需要查看
RSelenium才能实现这一点 - 请参阅 this related post。
标签: r web-scraping infinite-scroll rvest