Кукольник: установите 0 для тайм-аута - PullRequest
1 голос
/ 12 марта 2019

Каждый раз, когда я запускаю этот скрипт, время ожидания истекло. setDefaultNavigationTimeout действительно предотвращает тайм-ауты?

Я прохожу около 26 URL, и на каждой странице есть большое количество изображений. Не могу представить, что Кукольник не может обрабатывать эти страницы только из-за тяжелых изображений?

const url = 'test.com';
const jsonReturn = [];


async function runScraper() {

  const browser = await puppeteer.launch(prodConfig);

  const page = await browser.newPage({
    timeout: 0
  });

  page.setDefaultNavigationTimeout(0);
  await page.goto(url, { waitUntil: 'domcontentloaded' });
  await page.waitForSelector('.featured-shows-featured-show');

  let featuredShowsURLs = await page.$$eval('.featured-shows-featured-show > a', (links) => {
    return links.map(link => {
      return link.href;
    });
  });


  featuredShowsURLs = _.uniq(featuredShowsURLs)

  for (const featuredShowsURL of featuredShowsURLs) {
    const page = await browser.newPage({
      timeout: 0
    });
    try {
      await page.goto(featuredShowsURL);
      await page.waitForSelector('.show-title');
    } catch (e) {
      featuredShowsURL;
      debugger;
    }

    const showTitle = await findAndReturnSelectorText('.show-title', page);
    const showDates = await findAndReturnSelectorText('.show-dates', page);
    const showLocation = await findAndReturnSelectorText('.show-location', page);
    const showGallery = await findAndReturnSelectorText('.entity-link', page);
    const showDetail = await findAndReturnSelectorText('.show-press-release', page);

    const newItem = {
      showTitle,
      showDates,
      showLocation,
      showGallery,
      showDetail,
    };

    const id = hash(newItem);

    jsonReturn.push({
      ...newItem,
      id
    });
  }

  await browser.close();
}

runScraper();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...