Wolt

Getting all restaurants from wolt baku in which exist food with the duck meat

library(rvest, warn.conflicts=F, quietly=T)
library(dplyr, warn.conflicts=F, quietly=T)
library(tidyr, warn.conflicts=F, quietly=T)
library(stringr, warn.conflicts=F, quietly=T)
library(RSelenium, warn.conflicts = F, quietly = T)

wolt_data=data.frame()   #Create empty data frame
driver <- rsDriver(browser = c("chrome"), chromever = "107.0.5304.62")
remote_driver <- driver[["client"]] 
tryCatch(
  {
    remote_driver$navigate("https://wolt.com/az/aze/baku/search?q=%C3%B6rd%C9%99k")
    
    wolt_links<-remote_driver$findElements("css", "a.DiscoveryVenueListItem__StyledLink-sc-zaniqj-0.hzyLDz")
    
    #Get all url from main search page
    for (elem in wolt_links) {
      #elem<-wolt_links[[1]]
      elem<-elem$getElementAttribute('href')
      tryCatch({
        moreInfo_page=read_html(elem[[1]])
        phone=moreInfo_page %>% html_nodes("div > a > span")%>%html_text() %>% paste(collapse ="," )
        name=moreInfo_page %>% html_nodes("span.VenueHeroBanner__TitleSpan-sc-3gkm9v-2.kCyFrS")%>%html_text() %>% paste(collapse ="," )
        unvan=moreInfo_page %>% html_nodes("div.VenueSideInfo-module__primary___xK8qF")%>%html_text() %>% paste(collapse ="," )
        
        phone<-gsub(",.*", "", phone)   
        #print(data.frame( name, phone, unvan))
        
        wolt_data=rbind(wolt_data, data.frame( name, phone, unvan, elan_url=elem[[1]], stringsAsFactors = FALSE))
      },
      error=function(e) {print("URL Not Found, skipping") 
        next})
    }
    
    #print(paste(nrow(wolt_data)," number of ads scrapped!")) 
  },
  error=function(e) {
    message('An Error Occurred')
    print(e)
  },
  warning=function(w) {
    message('A Warning Occurred')
    print(w)
    return(NA)
  }
)

#write.csv(wolt_data,"wolt_data.csv")
head(wolt_data)
## data frame with 0 columns and 0 rows