【发布时间】:2019-12-23 22:56:01
【问题描述】:
我尝试使用 puppeteer library 编写简单的 web-scraper。
当我通过page.goto通过url获取页面时,如果失败,我需要重试,即响应代码> = 400。
我的sn-p:
'use strict';
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({headless: false});
const page = await browser.newPage();
await page.setViewport({width: 1024, height: 768});
await page.setDefaultNavigationTimeout(0);
await page.goto('https://google.com');
await browser.close();
process.exit();
})();
如果response.code >= 400,我需要实施失败策略来重试 url。
我需要在尝试之间延迟等于retryNumber * 1000ms:
- 第一次尝试 1000 毫秒;
- 第二次尝试 2000 毫秒;
- 第三次尝试 3000 毫秒,依此类推。
如果retryNumber 超过maxRetryNumber,则应拒绝承诺。
谁知道如何通过代码实现这一点?有没有现成的使用packets或者sn-ps来达到目的?
【问题讨论】:
标签: javascript node.js web-scraping es6-promise puppeteer