async function scrape() { debug('scrape'); const {tasks, options, mapFunc} = parser.parseArgs(arguments); webdriver.load(options.nightmareOptions); const results = await Promise.mapSeries(tasks, async (task) => { task = parser.parseOptions(task); const opt = _.assign({}, task, options); await webdriver.setUserAgent(opt.useragent); await webdriver.goto(opt.url, opt.waitMs); await webdriver.waitForElement(opt.selector); const html = await scrapeOnce(opt); return mapFunc(html); }); await end(); return results.length > 1 ? results : results[0]; }
async function ss() { debug('ss'); const {tasks, options, mapFunc} = parser.parseArgs(arguments); webdriver.load(options.nightmareOptions); const results = await Promise.mapSeries(tasks, async (task) => { task = parser.parseOptions(task); const opt = _.assign({}, task, options); await webdriver.goto(task.url, opt.waitMs); await webdriver.waitForElement(opt.selector); const html = await scrapeOnce(opt); const buffers = await screenshotOnce(opt); return { html: mapFunc(html), buffers: mapFunc(buffers) }; }); await end(); return results.length > 1 ? results : results[0]; }
async function screenshot() { debug('screenshot'); const {tasks, options, mapFunc} = parser.parseArgs(arguments); webdriver.load(options.nightmareOptions); const results = await Promise.mapSeries(tasks, async (task) => { task = parser.parseOptions(task); const opt = _.assign({}, task, options); await webdriver.setUserAgent(opt.useragent); await webdriver.goto(task.url, opt.waitMs); await webdriver.waitForElement(opt.selector); const buffers = await screenshotOnce(opt); return mapFunc(buffers); }); await end(); return results.length > 1 ? results : results[0]; }