gpt4 book ai didi

javascript - 在 Node 中遍历 page.evaluate

转载 作者:行者123 更新时间:2023-11-30 11:13:55 24 4
gpt4 key购买 nike

我正在尝试使用 for-of 循环方法来迭代 URL 数组并将它们与 page.evaluate 一起使用(puppeteer图书馆)功能。我将发布我的代码片段(单个 URL 版本),以便这里的人可以更好地向我解释如何循环它。我想定义一个 url 数组(可能在 Json 中定义),而不是每次我想在我的学校科目之间切换时替换第二个 url

const puppeteer = require('puppeteer');

let scrape = async () => {
const browser = await puppeteer.launch({headless: true});
const page = await browser.newPage();
await page.goto('https://marconi-pr.registroelettronico.com/quaderno/'); //go to login page
await page.waitFor(2000);
await page.click('#ext-container-6 > div.x-size-monitors.scroll'); //skip some ads
await page.waitFor(2000);
await page.type('#ext-element-21', 'user'); //user field
await page.waitFor(1000);
await page.type('#ext-element-27', 'password'); //pwd field
await page.click('#btnAccedi'); //login button
await page.waitFor(5000);
await page.goto('https://marconi-pr.registroelettronico.com/mastercom/register_manager.php?_dc=1537450418307&id_materia=1000188&action=get_assignments_subject&page=1&start=0&limit=25'); //after login i want to access this
const html = await page.evaluate(el => el.innerHTML, await page.$('pre')); //copying some things
await browser.close();
return html;
};

scrape().then((html) => {
html = JSON.parse(html); //parsing as json
console.log(html); // Success!
});

最佳答案

您可以使用 page.evaluate()使用以下方法登录后在 URL 数组上:

'use strict';

const puppeteer = require('puppeteer');

const urls = [
'https://www.example.com/page-1',
'https://www.example.com/page-2',
'https://www.example.com/page-3',
];

(async () => {
const browser = await puppeteer.launch({
headless: true,
});

const page = await browser.newPage();

let result = '';

await page.goto('https://www.example.com/login');

await page.type('#username', 'username');
await page.type('#password', 'password');

await page.click('#submit');

await page.waitForNavigation();

for (let i = 0; i < urls.length; i++) {
await page.goto(urls[i]);

result = await page.evaluate(() => document.getElementById('example').innerHTML);

console.log(result);
}

await browser.close();
})();

关于javascript - 在 Node 中遍历 page.evaluate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52448042/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com