UNPKG

indeed-job-scraper

Version:

A node.js application to fetch jobs from indeed website

76 lines (70 loc) 2.12 kB
let URL = require("url").URL; //----------------------------------------------------------------------------- const defaults = { "scrape" : { "job-cards" : ".jobsearch-ResultsList > li div.job_seen_beacon", "job-title" : "span[title]", "job-link" : "h2.jobTitle > a.jcs-JobTitle", "company-name" : "span.companyName", "company-location" : "div.companyLocation", "company-rating" : "span.ratingsDisplay", "job-snippet" : "div.job-snippet", "post-date" : "span.date", "job-salary" : ["div.salary-snippet-container" , "div.estimated-salary-container"] }, "base-URL" : "https://www.indeed.com/", "max-pages" : 5, "verbose" : true } //----------------------------------------------------------------------------- let config = { get ["job-cards"]() { return defaults["scrape"]["job-cards"] } , get ["job-link"]() { return defaults["scrape"]["job-link"] } , get ["job-title"]() { return defaults["scrape"]["job-title"] } , get ["company-name"]() { return defaults["scrape"]["company-name"] } , get ["company-location"]() { return defaults["scrape"]["company-location"] } , get ["company-rating"]() { return defaults["scrape"]["company-rating"] } , get ["job-snippet"]() { return defaults["scrape"]["job-snippet"] } , get ["post-date"]() { return defaults["scrape"]["post-date"] } , get ["job-salary"]() { return defaults["scrape"]["job-salary"] } , get ["base-URL"]() { return defaults["base-URL"] } , get ["max-pages"]() { return defaults["max-pages"] } , get ["verbose"]() { return defaults["verbose"] } , set ["base-URL"](baseURL) { defaults["base-URL"] = (new URL(baseURL)).href; } , set ["max-pages"](maxPages) { let n = Number.parseInt(maxPages + ""); if(!isNaN(n) && isFinite(n) && n >= 0) return defaults["max-pages"] = n; throw new Error("maxPages should be a positive number or convertable to a positive number"); } , set ["verbose"](verbose) { defaults["verbose"] = !!verbose; } , } //----------------------------------------------------------------------------- module.exports = config;