кукловод: не могу войти и перебрать URL - PullRequest
0 голосов
/ 26 февраля 2019

Привет, ребята! Я хочу зайти на сайт и после аутентификации хочу пройтись по заданному набору URL-адресов и очистить данные.То, что я собираюсь сделать, может быть описано на этом примере, однако я получаю необработанное отклонение обещания.

const puppeteer = require("puppeteer");

list = [
	"https://www.facebook.com/",
	"https://www.google.com/",
	"https://www.zocdoc.com/"
];

const getTitle = async (p, url) => {
    try{
        await p.goto(url);
        const title = await p.title();
        console.log(title);
    }
    catch(e) {
        console.log(e)
    }

    return title
};

(async () => {
	const browser = await puppeteer.launch();
    const page = await browser.newPage();
    console.log(this)
    for (var url of list) {
        getTitle(page, url)
    }
	await browser.close();
})();

1 Ответ

0 голосов
/ 26 февраля 2019

В этом примере есть несколько проблем.

  1. Вы должны ожидать вызова функции getTitle, вы ожидаете внутри функции, но вы должны также ожидать вызова функции.

  2. Вы должны окружить getTitle блоком try и catch и проверить внутри функции, есть ли возвращаемый заголовок (например, заголовок для Google равен нулю)

    const puppeteer = require("puppeteer");
    
    list = [
        "https://www.facebook.com/",
        "https://www.google.com/",
        "https://www.zocdoc.com/"
    ];
    
    const getTitle = async (p, url) => {
        try{
            await p.goto(url);
            const title = await p.title();
            if(title){
                return title
            }
        }
        catch(e) {
            throw(e)
            console.log(e)
        }
    };
    
    (async () => {
        const browser = await puppeteer.launch();
        const page = await browser.newPage();
        console.log(this)
        for (var url of list) {
            try{
                console.log(await  getTitle(page, url))
            }
            catch(e ){
                console.log('No title')
            }
        }
        await browser.close();
    })();
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...