我在网上抓一个职位门户网站。即使我更改关键字搜索条件,它也会返回相同的结果。看来我在下面的代码中做错了什么 -
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()
在EZ_KEYWORD_ANY输入值中,如果您将其从SAS更改为任何关键字,则会返回相同的结果。
答案 0 :(得分:1)
我不确定rvest是否可以在这个网站上运行 - 我没有很多运气使用rvest这样的“互动”网络抓取。您可以尝试这样的RSelenium解决方案:
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)
我只在Ubuntu上测试了这个,所以我不确定是否有任何额外的Windows / OS要求来设置RSelenium。如果您使用的是linux,那么这应该是您需要的唯一设置。