Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 通过单击“滚动浏览网页链接”;“展示更多产品”;并获取产品信息_R_Rvest_Rselenium - Fatal编程技术网

R 通过单击“滚动浏览网页链接”;“展示更多产品”;并获取产品信息

R 通过单击“滚动浏览网页链接”;“展示更多产品”;并获取产品信息,r,rvest,rselenium,R,Rvest,Rselenium,我能够刮到11个滚动,因为在那之后,我们需要点击“显示更多产品”按钮。可以做些什么来进一步滚动?以下是我目前的代码: library(RSelenium) require(RCurl) require(XML) require(dplyr) require(stringr) require(rvest) shell.exec(paste0("C:/Users/Nitin Kansal/Desktop/R/batch.bat")) #start RSelenium checkForServe

我能够刮到11个滚动,因为在那之后,我们需要点击“显示更多产品”按钮。可以做些什么来进一步滚动?以下是我目前的代码:

library(RSelenium)
require(RCurl)
require(XML)
require(dplyr)
require(stringr)
require(rvest)

shell.exec(paste0("C:/Users/Nitin Kansal/Desktop/R/batch.bat"))

#start RSelenium

checkForServer()
startServer()
remDr <- remoteDriver()
remDr$open()

# load your page

remDr$navigate("http://www.jabong.com/kids/clothing/girls-clothing/kids-tops-t-shirts/?source=topnav_kids")

# scroll down 11 times, allowing 3 second for the page to load everytime

for(i in 1:11){      
  remDr$executeScript(paste("scroll(0,",i*10000,");"))
  Sys.sleep(3)    
}

# get the page html

page_source <- remDr$getPageSource()

# get the URL's that you are looking for

pp <- xml2::read_html(page_source[[1]]) %>% 
  rvest::html_nodes("a") %>% 
  rvest::html_attr("data-original-href") %>% 
  {.[!is.na(.)]}

pp <- as.data.frame(pp)
库(RSelenium)
需要(RCurl)
需要(XML)
需要(dplyr)
要求(stringr)
要求(rvest)
exec(paste0(“C:/Users/Nitin Kansal/Desktop/R/batch.bat”))
#起始硒
checkForServer()
startServer()

remDr在滚动11次后,尝试将其包含在代码中

remDr$findelelement(使用='css选择器',“.load more products”)$clickElement()

这将生成另一个页面,然后删除相关细节


循环整个流程。

我应该将其放入for循环中吗?对于(1:15中的i){remDr$executeScript(粘贴(“滚动(0),i*10000)”;”)remDr$findelelement(使用='css选择器',“.load more products”)$clickElement()Sys.sleep(3)}当然可以。并添加Sys.sleep(5),这样就足以加载页面了