Puppeteer - RequestInterception: Unterschied zwischen den Versionen

Aus Wikizone
Wechseln zu: Navigation, Suche
 
Zeile 14: Zeile 14:
  
 
<syntaxhighlight lang="javascript">
 
<syntaxhighlight lang="javascript">
page.on('request', (request) => {
+
'use strict';
        if (/\.(png|jpg|jpeg|gif|webp)$/i.test(request.url)) {
+
 
          request.abort();
+
const puppeteer = require('puppeteer');
        } else if (request.url.startsWith(defaults.URL_INSTAGRAM_GRAPHQL_QUERY)) {
+
 
          query_id = request.url.split('=')[1].split('&')[0];
+
(async () => {
        } else {
+
  const browser = await puppeteer.launch();
          request.continue();
+
  const page = await browser.newPage();
        }
+
  await page.setRequestInterception(true);
      });
+
  page.on('request', request => {
 +
    if (request.resourceType() === 'image') {
 +
      request.abort();
 +
    } else {
 +
      request.continue();
 +
    }
 +
  });
 +
  await page.goto('https://news.google.com/news/');
 +
  await page.screenshot({path: 'news.png', fullPage: true});
 +
 
 +
  await browser.close();
 +
})();
 
</syntaxhighlight>
 
</syntaxhighlight>

Aktuelle Version vom 12. September 2022, 19:34 Uhr

Der RequestInterceptor klinkt sich quasi ein, wenn die ganzen Resourcen der Webpage nachgeladen werden. So kann man direkt eingreifen. Der Ladevorgang der Resourcen geht erst weiter, wenn request.continue() oder request.abort() aufgerufen wird.

Snippets[Bearbeiten]

page.on('request', (request) => {
        if (/\.(png|jpg|jpeg|gif|webp)$/i.test(request.url)) {
          request.abort();
        } else if (request.url.startsWith(defaults.URL_INSTAGRAM_GRAPHQL_QUERY)) {
          query_id = request.url.split('=')[1].split('&')[0];
        } else {
          request.continue();
        }
      });
'use strict';

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.setRequestInterception(true);
  page.on('request', request => {
    if (request.resourceType() === 'image') {
      request.abort();
    } else {
      request.continue();
    }
  });
  await page.goto('https://news.google.com/news/');
  await page.screenshot({path: 'news.png', fullPage: true});

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