Puppeteer - RequestInterception: Unterschied zwischen den Versionen
Aus Wikizone
Steff (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „== Snippets == <syntaxhighlight lang="javascript"> page.on('request', (request) => { if (/\.(png|jpg|jpeg|gif|webp)$/i.test(request.url)) { r…“) |
Steff (Diskussion | Beiträge) |
||
| (Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| + | 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 == | == Snippets == | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
| Zeile 10: | Zeile 11: | ||
} | } | ||
}); | }); | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | <syntaxhighlight lang="javascript"> | ||
| + | '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(); | ||
| + | })(); | ||
</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();
})();