hammer-scrape
Version:
Unifies Cheerio and Puppeteer for the most streamline scraping experience
49 lines • 1.88 kB
JavaScript
;
function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
// our entry point into this library
__export(require("./engines/hammer_engine"));
__export(require("./engines/cheerio_engine"));
__export(require("./engines/puppeteer_engine"));
__export(require("./cores/cheerio_parsing"));
__export(require("./cores/puppeteer_parsing"));
__export(require("./cores/puppeteer_manipulate"));
__export(require("./engine_core_type"));
__export(require("./engine_errors"));
__export(require("./engine_mode"));
__export(require("./engine_type"));
__export(require("./web_scraping_engine"));
// default export will be the hammer engine
const hammer_engine_1 = require("./engines/hammer_engine");
const request_group_1 = require("request-group");
/** Quick and Dirty hammer request
* @todo Find a a way to share puppeteer manager instances between multiple hammer request. Right now this is really inefficiant
*/
class HammerRequest extends request_group_1.BaseWebRequest {
constructor(url, pingSelector, sharedManager, forceBrowser) {
super(url);
this.pingSelector = pingSelector;
this.sharedManager = sharedManager;
this.forceBrowser = forceBrowser;
}
async dispose() {
if (this.pageData) {
await this.pageData.shutoff();
this.pageData = null;
}
}
async run() {
if (!this.pageData) {
this.pageData = new hammer_engine_1.default(this.pingSelector, true, this.sharedManager, this.forceBrowser);
await this.pageData.startup();
}
// process a url
await this.pageData.process(this.getUrl());
return this;
}
}
exports.HammerRequest = HammerRequest;
exports.default = hammer_engine_1.default;
//# sourceMappingURL=index.js.map