Class: RemoteDevJobs::Launch::StackScraper

Inherits:
Object
  • Object
show all
Defined in:
lib/remote_dev_jobs/stack_scraper.rb

Class Method Summary collapse

Class Method Details

.scrape_job_listObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 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) ⇒ Object



24
25
26
27
28
29
30
31
32
# 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