class RemoteDevJobs::Launch::StackScraper
Public Class Methods
scrape_job_list()
click to toggle source
# File lib/remote_dev_jobs/stack_scraper.rb, line 6 def self.scrape_job_list data = Nokogiri::HTML(open("http://careers.stackoverflow.com/jobs?searchTerm=junior&allowsremote=true")) base = "http://careers.stackoverflow.com" data.css("div.-item.-job").map do |job| job_link = URI.join(base, job.css("h1 .job-link").attribute('href').value.to_s) job_page = Nokogiri::HTML(open("#{job_link}")) seniority = job_page.css("li.seniority").text seniority.empty? ? seniority = nil : seniority = seniority.split("\r\n")[1].split(" ").join(" ") job_hash = { company: job.css("ul li.employer").text.split("\r")[1].split(" ").join(" "), location: job.css("ul li.location").text.split("\r\n")[1].split(" ").join(" "), position: job.css("a.job-link").attribute("title").value, seniority: seniority, job_url: job_link } end end
scrape_job_page(job_url)
click to toggle source
# File lib/remote_dev_jobs/stack_scraper.rb, line 24 def self.scrape_job_page(job_url) data = Nokogiri::HTML(open(job_url)) company_site = data.css("a.employer.up-and-out") company_site.empty? ? company_site = "Not listed." : company_site = company_site.attribute("href").value.to_s attributes = { description: data.css("div.description p").text, company_site: company_site } end