gpt4 book ai didi

r - 无限滚动抓取动态电子商务页面

转载 作者:行者123 更新时间:2023-12-03 11:41:42 26 4
gpt4 key购买 nike

我在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)。但这似乎需要大量工作(我计划在不同的部分进行此工作)。应该围绕程序进行变通。

最佳答案

正如@nrussell所建议的那样,您可以在获取源代码之前使用RSelenium以编程方式向下滚动页面。

例如,您可以这样做:

library(RSelenium)
library(rvest)
#start RSelenium
checkForServer()
startServer()
remDr <- remoteDriver()
remDr$open()

#navigate to your page
remDr$navigate("http://www.linio.com.co/tecnologia/celulares-telefonia-gps/")

#scroll down 5 times, waiting for the page to load at each time
for(i in 1:5){
remDr$executeScript(paste("scroll(0,",i*10000,");"))
Sys.sleep(3)
}

#get the page html
page_source<-remDr$getPageSource()

#parse it
html(page_source[[1]]) %>% html_nodes(".product-itm-price-new") %>%
html_text()

关于r - 无限滚动抓取动态电子商务页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29861117/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com