hammer-scrape
Version:
Unifies Cheerio and Puppeteer for the most streamline scraping experience
47 lines • 1.72 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const web_scraping_engine_1 = require("../web_scraping_engine");
const engine_type_1 = require("../engine_type");
const engine_core_type_1 = require("../engine_core_type");
const cheerio_parsing_1 = require("../cores/cheerio_parsing");
const engine_mode_1 = require("../engine_mode");
const engine_errors_1 = require("../engine_errors");
class CheerioEngine extends web_scraping_engine_1.WebScrapingEngine {
constructor() {
super(engine_type_1.default.Fixed, engine_core_type_1.default.Cheerio);
}
load() {
return new Promise((resolve) => {
this.parsingCore = null;
this.manipulationCore = null;
resolve();
});
}
process(url) {
if (this.isCorrectEngineMode(engine_mode_1.default.Idling)) {
return new Promise(async (resolve) => {
this.setEngineMode(engine_mode_1.default.Loading);
let cheerioCore = new cheerio_parsing_1.default(url);
await cheerioCore.initialize({
xml: false,
header: undefined,
});
this.parsingCore = cheerioCore;
this.setEngineMode(engine_mode_1.default.Idling);
resolve();
});
}
else {
throw new engine_errors_1.EngineCannotSwitchModeError();
}
}
shutoff() {
return new Promise((resolve) => {
this.setEngineMode(engine_mode_1.default.Off);
resolve();
});
}
}
exports.CheerioEngine = CheerioEngine;
exports.default = CheerioEngine;
//# sourceMappingURL=cheerio_engine.js.map