Nodejs / Puppeteer - Как использовать page.evaluate - PullRequest
0 голосов
/ 27 августа 2018

Я знаю, что это нубский вопрос, но я хочу знать, когда мне следует использовать page.evaluate

Я также знаю, что документация существует, но я все еще не понимаю

Кто-нибудь может дать мне объяснение о том, как и когда использовать эту функцию при создании скребка с кукловодом?

1 Ответ

0 голосов
/ 27 августа 2018

Во-первых, важно понимать, что существует две основные среды:

  • Среда Node.js (кукловод)
  • Страница DOM Environment

Вам следует использовать page.evaluate(), когда вы хотите взаимодействовать со страницей непосредственно в среде DOM страницы, передав функцию и возвращая <Promise<Serializable>>, который разрешается в возвращаемое значение переданной функции.

В противном случае, если вы не используете page.evaluate(), вы будете иметь дело с элементами как объект ElementHandle в среде Node.js (Puppeteer).

Пример использования:

const example = await page.evaluate( () =>
{
    const elements = document.getElementsByClassName( 'example' );
    const result = [];

    document.title = 'New Title';

    for ( let i = 0; i < elements.length; i++ )
    {
        result.push( elements[i].textContent );
    }

    return JSON.stringify( result );
});

См. Упрощенную схему ниже:

Puppeteer page.evaluate() Diagram

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