2017-03-29 5 views
1

Ich bin Web-Scraping eine Job-Portal-Website. Es gibt das gleiche Ergebnis zurück, selbst wenn ich die Schlüsselwortsuchkriterien ändere. Es scheint, ich unten etwas falsch im Code tue -Web Scraping Job-Portal in R

library(rvest) 
library(httr) 
uastring <- "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36" 
session <- html_session("https://freesearch.naukri.com", user_agent(uastring)) 
form <- html_form(session)[[2]] 
form 
form <- set_values(form, EZ_KEYWORD_ANY = "SAS") 
url <- submit_form(session,form) 
sas_indeed <- url 

# Get names of candidates 
candidate_title <- sas_indeed %>% 
    html_nodes("#titleF") %>% 
    html_text() 

Im EZ_KEYWORD_ANY Eingabewert, wenn Sie es von SAS einen Keyword ändern, wäre es das gleiche Ergebnis zurück.

Antwort

1

Ich bin mir nicht sicher, ob Rvest mit dieser Seite arbeiten wird - ich hatte nicht viel Glück mit Rvest für "interaktive" Web Scraping so. Sie könnten eine RSelenium Lösung wie diese versuchen:

library(RSelenium) 

#this sets up the phantomjs driver 
pjs <- wdman::phantomjs() 

#open a connection to it 
dr <- rsDriver(browser = 'phantomjs') 
remdr <- dr[['client']] 

#go to the site 
remdr$navigate("https://freesearch.naukri.com") 

#enter search term 
formObj <- remdr$findElement(using = 'id', value = 'ez_keyword_any') 
formObj$sendKeysToElement(list("SAS")) 

#submit search 
submitObj <- remdr$findElement(using = 'id', value = 'findResumes') 
submitObj$clickElement() 

#get all names 
names <- remdr$findElements(using = 'id', value = 'titleF') 

#function to extract names 
getName <- function(element){ 
    return(unlist(element$getElementText())) 
} 

#apply to all name elements 
lapply(names, FUN = getName) 

ich dies auf Ubuntu nur getestet, so dass ich bin mir nicht sicher, ob es irgendwelche zusätzlichen Fenster/O Anforderungen für RSelenium einrichten. Wenn Sie Linux verwenden, sollte dies die einzige Konfiguration sein, die Sie benötigen.