如何在.goto(URL)中使用多重链接?

时间:2019-06-09 05:15:13

标签: node.js web-crawler puppeteer

    const puppeteer = require("puppeteer");


(async () => {

    try {
        const browser = await puppeteer.launch({ headless: true});
        const page = await browser.newPage();

        await page.goto('url/c-0');
            await page.waitForSelector('.box-chap');
            const element = await page.$(".box-chap");
            const content = await page.evaluate(element => element.textContent, element);

            console.log(content + "chapter");

    } catch (error) {

    }
})();

大家好,目前我想循环一下: url / c-0' url / c-1' url / c-2' .....

请给我解决方案,谢谢大家。

1 个答案:

答案 0 :(得分:0)

只需循环工作即可。您可以创建一个forloop来循环要爬网的所有章节(如果您的章节网址具有相同的格式)。

const puppeteer = require("puppeteer");


(async () => {

  try {
    const browser = await puppeteer.launch({ headless: true });
    const page = await browser.newPage();

    const endOfChapterNumber = 10; // number of chapters
    for (const c = 0; c <= endOfChapterNumber; c++) {
      const chapterUrl = 'url/c-' + c;
      await page.goto(chapterUrl);
      await page.waitForSelector('.box-chap');
      const element = await page.$(".box-chap");
      const content = await page.evaluate(element => element.textContent, element);

      console.log(content + " chapter: " + c);
    }
  } catch (error) {

  }
})();