LINUX.ORG.RU

История изменений

Исправление sjinks, (текущая версия) :

Вместо page.evaluate() тебе нужноо что-то типа

const posts = await page.$$('.post');
const urls = [];
for (const post of posts) {
    const link = await post.$('.post_link_next');
    const href = await link.evaluate((e) => e.getAttribute('href'));
    urls.push(href);
}

В urls у тебя будут относительные пути:

[ '/azamon-interview-tasks/',
  '/monty-hall-problem/',
  '/vpython-sun-system-model/',
  '/how-i-failed/',
  '/unit-testing-with-mock-and-jsonschema/' ]

Из них делаешь абсолютные, и в цикле натравливаешь аналог scrapeIn(n)erPage.

Если тебе не хочется использовать puppeteer API, то в page.evaluate() можно использовать XMLHttpRequest для загрузки страниц (с xhr.responseType = ‘document’) и использовать DOM API над xhr.responseXML.

Исходная версия sjinks, :

Вместо page.evaluate() тебе нужноо что-то типа

const posts = await page.$$('.post');
const urls = [];
for (const post of posts) {
    const link = await post.$('.post_link_next');
    const href = await link.evaluate((e) => e.getAttribute('href'));
    urls.push(href);
}

В urls у тебя будут относительные пути:

[ '/azamon-interview-tasks/',
  '/monty-hall-problem/',
  '/vpython-sun-system-model/',
  '/how-i-failed/',
  '/unit-testing-with-mock-and-jsonschema/' ]

Из них делаешь абсолютные, и в цикле натравливаешь аналог scrapeIn(n)erPage.

Если тебе не хочется использовать puppeteer API, то в page.evaluate() можно использовать XMLHttpRequest для загрузки страниц (с xhr.responseType = ‘document’) и использовать DOM API над xhr.responseXML.