Что такое BrowserContext в библиотеке узлов Puppeteer? - PullRequest
0 голосов
/ 11 июня 2018

Я читаю документацию Puppeteer .В нем говорится следующее:

BrowserContexts обеспечивают способ работы нескольких независимых сеансов браузера.Когда браузер запускается, он имеет один BrowserContext, используемый по умолчанию.Метод browser.newPage () создает страницу в контексте браузера по умолчанию.

Интересно, что он использует терминологию "сессия".Моя интерпретация сеанса - это данные, которые мы храним на стороне сервера для хранения информации, которая не подходит для хранения на стороне клиента.Файлы cookie используются на клиенте для сохранения информации в разных запросах.Однако сеансы используются на языках сервера для сохранения данных, которые не подходят для хранения в файлах cookie.Тем не менее, Puppeteer - это клиентская среда для сканирования веб-страниц через Chromium.Так, что документация подразумевает под сеансом браузера и контекстом браузера?

Ответы [ 2 ]

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

Официальная документация определяет класс BrowserContext как:

класс: BrowserContext

BrowserContexts предоставляют возможность управлять несколькими независимыми сеансами браузера.Когда браузер запускается, он имеет один BrowserContext, используемый по умолчанию.Метод browser.newPage() создает страницу в контексте браузера по умолчанию.

Если страница открывает другую страницу, например, с помощью вызова window.open, всплывающее окно будет принадлежать контексту браузера родительской страницы.

Puppeteer позволяет создавать контексты браузера «инкогнито» методом browser.createIncognitoBrowserContext().Контексты браузера «Инкогнито» не записывают данные просмотра на диск.

// Create a new incognito browser context
const context = await browser.createIncognitoBrowserContext();
// Create a new page inside context.
const page = await context.newPage();
// ... do stuff with page ...
await page.goto('https://example.com');
// Dispose context once it's no longer needed.
await context.close();

Когда Puppeteer ссылается на сеанс браузера , это не относится к сеансу переменных.

Термин сеанс означает «период, посвященный определенной деятельности».«.В этом случае действие просматривается.

Итак, сессия начинается puppeteer.launch() и заканчивается browser.close().

Фраза контекст браузера относится к активному или указанному сеансу браузера.

Может быть несколько сеансов браузера, поэтому класс BrowserContext позволяет вам сосредоточиться на конкретном сеансе.

0 голосов
/ 15 июня 2018

Насколько я понимаю:

BrowserContext - это обычный экземпляр браузера.В настоящее время может быть два BrowserContexts: по умолчанию, который создается при запуске, и Incognito.

Сеанс браузера не является строго техническим термином, это определение работысеанс выполняется в данном браузере.Он содержит все данные и метаданные, которые могут присутствовать в работающем браузере: открытые вкладки и страницы, накопленные файлы cookie, история, положение окон, размер и т. Д.

В случае puppeteer сеанс длится сзапуск браузера до закрытия браузера.Важной особенностью сеансов является то, что сеансы по умолчанию и сеансы Incognito являются отдельными (как в реальном Chrome / ium) и не могут получить доступ к данным друг друга, таким как файлы cookie.Тогда как разные вкладки в одном сеансе браузера (BrowserContext) могут это делать.

...