@jomari-wp/linkedin-jobs-scraper
Version:
Scrape public available jobs on Linkedin using headless browser
66 lines (65 loc) • 2.1 kB
TypeScript
import { RunStrategy, IRunStrategyResult } from "./RunStrategy";
import { BrowserContext, Page, CDPSession } from "puppeteer";
import { IQuery } from "../query";
export declare class Selectors {
static switchSelectors: boolean;
static get container(): ".results__container.results__container--two-pane" | ".two-pane-serp-page__results-list";
static get jobs(): string;
static get links(): ".jobs-search__results-list li a.result-card__full-card-link" | "a.base-card__full-link";
static get applyLink(): string;
static get dates(): string;
static get companies(): ".result-card__subtitle.job-result-card__subtitle" | ".base-search-card__subtitle";
static get places(): ".job-result-card__location" | ".job-search-card__location";
static get detailsPanel(): string;
static get description(): string;
static get seeMoreJobs(): string;
}
/**
* @class AnonymousStrategy
* @extends RunStrategy
*/
export declare class AnonymousStrategy extends RunStrategy {
/**
* Verify if authentication is required
* @param {Page} page
* @returns {Promise<boolean>}
* @static
* @private
*/
private static _needsAuthentication;
/**
* Wait for job details to load
* @param page {Page}
* @param jobId {string}
* @param timeout {number}
* @returns {Promise<ILoadResult>}
* @static
* @private
*/
private static _loadJobDetails;
/**
* Try to load more jobs
* @param page {Page}
* @param jobLinksTot {number}
* @param timeout {number}
* @returns {Promise<ILoadResult>}
* @private
*/
private static _loadMoreJobs;
/**
* Accept cookies
* @param {Page} page
* @param {string} tag
*/
private static _acceptCookies;
/**
* Run strategy
* @param browser
* @param page
* @param cdpSession
* @param url
* @param query
* @param location
*/
run: (browser: BrowserContext, page: Page, cdpSession: CDPSession, url: string, query: IQuery, location: string) => Promise<IRunStrategyResult>;
}