@accounter/israeli-vat-scraper
Version:
Scraper app for fetching Israeli VAT data
72 lines (71 loc) • 2.78 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.newHomePage = exports.newPageByYear = exports.navigateHomeToYear = exports.newPageByMonth = void 0;
const tslib_1 = require("tslib");
const puppeteer_1 = tslib_1.__importDefault(require("puppeteer"));
const login_handler_js_1 = require("../handlers/login-handler.js");
const page_util_js_1 = require("./page-util.js");
const nevigateYearToMonth = async (page, monthIndex, logger) => {
try {
const selector = `#dgDuchot > tbody > tr:nth-child(${monthIndex + 2}) > td:nth-child(1) > a`;
await (0, page_util_js_1.waitAndClick)(page, selector, logger);
return;
}
catch (e) {
throw new Error(`nevigateYearToMonth - ${e?.message}`, { cause: e });
}
};
const newPageByMonth = async (showBrowser, year, monthIndex, logger) => {
try {
const page = await (0, exports.newPageByYear)(showBrowser, year, logger);
await nevigateYearToMonth(page, monthIndex, logger);
return page;
}
catch (e) {
throw new Error(`newPageByYear - ${e?.message}`, { cause: e });
}
};
exports.newPageByMonth = newPageByMonth;
const navigateHomeToYear = async (page, year, logger) => {
try {
await (0, page_util_js_1.waitForSelectorPlus)(page, '#ContentUsersPage_DdlTkufa', logger);
await page.select('#ContentUsersPage_DdlTkufa', year);
return;
}
catch (e) {
throw new Error(`navigateHomeToYear - ${e?.message}`, { cause: e });
}
};
exports.navigateHomeToYear = navigateHomeToYear;
const newPageByYear = async (showBrowser, year, logger) => {
try {
const page = await (0, exports.newHomePage)(showBrowser, logger);
await (0, exports.navigateHomeToYear)(page, year, logger);
return page;
}
catch (e) {
throw new Error(`newPageByYear - ${e?.message}`, { cause: e });
}
};
exports.newPageByYear = newPageByYear;
const newHomePage = async (showBrowser, logger) => {
try {
const browser = await puppeteer_1.default.launch({
headless: !showBrowser,
});
const page = (await browser.pages())[0];
if (!page) {
throw new Error('Failed to get browser page');
}
await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3419.0 Safari/537.36');
await (0, login_handler_js_1.login)(page, logger);
await page.goto('https://www.misim.gov.il/emdvhmfrt/wViewDuchot.aspx', {
waitUntil: ['networkidle2', 'domcontentloaded'],
});
return page;
}
catch (e) {
throw new Error(`newHomePage - ${e?.message}`, { cause: e });
}
};
exports.newHomePage = newHomePage;