【问题标题】:Using rvest to Scrape Multiple Job Listing pages使用 rvest 抓取多个职位列表页面
【发布时间】:2020-08-31 15:45:19
【问题描述】:

我已经阅读了多个其他类似的问题,但似乎无法找到一个给我正确答案的问题。

我正在尝试在 TeamWorkOnline.com 上抓取所有当前职位。

这是具体网址:https://www.teamworkonline.com/jobs-in-sports?employment_opportunity_search%5Bexclude_united_states_opportunities%5D=0&commit=Search

使用此代码开始抓取过程没有问题:

listings <- data.frame(title=character(),
                       stringsAsFactors=FALSE) 
{
  url_ds <- paste0('https://www.teamworkonline.com/jobs-in-sports?employment_opportunity_search%5Bexclude_united_states_opportunities%5D=0&commit=Search',i)
  var <- read_html(url_ds)
  
  #job title
  title <-  var %>% 
    html_nodes('.margin-none') %>%
    html_text() %>%
    str_extract("(\\w+.+)+")

  
  listings <- rbind(listings, as.data.frame(cbind(title)))
}

但是,如果您查看该网站,底部有“编号导航”,可以继续到列出更多工作的其他页面。

我似乎不知道如何添加正确的代码以使 rvest 自动导航到其他页面并抓取这些作业。

任何帮助将不胜感激。

【问题讨论】:

    标签: r web-scraping rvest


    【解决方案1】:

    试试这个:

    library(rvest)
    library(stringr)
    
    listings <- character()
    for (i in 1:25) {
      url_ds <- paste0("https://www.teamworkonline.com/jobs-in-sports?employment_opportunity_search%5Bexclude_united_states_opportunities%5D=0&page=", i)
      #job title
      title <-  read_html(url_ds) %>% 
        html_nodes('.margin-none') %>%
        html_text() %>%
        str_extract("(\\w+.+)+")
      listings <- c(listings, title)
    }
    
    

    只需遍历所有页面即可抓取并合并它们。

    【讨论】:

      【解决方案2】:

      搜索结果共有25页,

      https://www.teamworkonline.com/jobs-in-sports?employment_opportunity_search%5Bexclude_united_states_opportunities%5D=0&page=25

      当您单击下一个按钮时,url 末尾的数字会根据导航页码而变化,如果上述代码适用于第一页,那么您需要遍历 1 到 25 的范围并附加您的页码到 url 并提取它。

      我希望它有效

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-02-16
        • 2022-01-03
        • 2017-03-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多