J'exécute un script de marionnettiste de base qui ouvre une page Web examine les valeurs de réponse, puis extrait les cookies.
Dans l'exemple ci-dessous, l'en-tête de réponse a les valeurs de clé suivantes:
page.on('response', response => {
const req = response.request();
const resp = response;
let result = {};
result['method'] = req.method;
result['status'] = resp.status;
result['url'] = req.url;
result['headers'] = resp.headers;
// Output of result['headers'] shortened for example
u'server': u'Microsoft-IIS/7.5',
u'set-cookie': u'A6=030uxloava000EG.000010000; expires=Mon, 16-Apr-2018 21:30:52 GMT; domain=.serving-sys.com; path=/\nC6=; expires=Mon, 16-Apr-2018 21:30:52 GMT; domain=.serving-sys.com; path=/\nD3=; expires=Mon, 16-Apr-2018 21:30:52 GMT; domain=.serving-sys.com; path=/\nu2=7f11f3f6-8979-4adc-824e-4d43b67f9b374ib310; expires=Mon, 16-Apr-2018 21:30:52 GMT; domain=.serving-sys.com; path=/',
u'x-powered-by': u'ASP.NET'},
Dans cet en-tête, vous verrez un ensemble de cookies, mais lorsque j'appelle attendre page.cookies () juste après page.on ('response' ...:
const cookies = await page.cookies();
les cookies const seront []. Est-ce que j'ai râté quelque chose?
L'événement response
se déclenche avant la fin de la demande. Vous pouvez utiliser requestfinished
à la place, mais si vous ne vous souciez pas des requêtes HTTP individuelles (pour tous les scripts, images, etc.), vous pouvez obtenir les "cookies finaux" avec juste:
const page = await browser.newPage()
await page.goto('https://www.google.com')
const cookies = await page.cookies()