pppeteer stop redirectの正しい姿勢とnet:ERR_FAILE Dの解決
1166 ワード
公式文書(pppeteer/app.md at master・GoogleChrome/pppeter・GitHub)でredirectを中断する標準的なやり方はこうです.
公式はすでにBugと定義していますが、関連の解決策もあります.umbreella Fix Request Interception・Issue葑3471・GoogleChrome/pppeter・GitHub
しかし、他の人が会った場合はaborn()の後では終わらない問題です.私は異常な問題を投げ出したので、自分で模索してみました.適当な方法をまとめました.
たとえば:
const puppeteer = require('puppeteer');
puppeteer.launch().then(async browser => {
const page = await browser.newPage();
await page.setRequestInterception(true);
page.on('request', interceptedRequest => {
if (interceptedRequest.url().endsWith('.png') || interceptedRequest.url().endsWith('.jpg'))
interceptedRequest.abort();
else
interceptedRequest.continue();
});
await page.goto('https://example.com');
await browser.close();
});
最初は大丈夫でしたが、たまにこんなことがあります.Error: net::ERR_FAILED at http://xxx.com/yyy
Googleは一巡して、関連のissueが少ないことを発見しました.Page.set Request Interception Redirection Issue·Issue_·GoogleChrome/pppeteer·GitHub公式はすでにBugと定義していますが、関連の解決策もあります.umbreella Fix Request Interception・Issue葑3471・GoogleChrome/pppeter・GitHub
しかし、他の人が会った場合はaborn()の後では終わらない問題です.私は異常な問題を投げ出したので、自分で模索してみました.適当な方法をまとめました.
たとえば:
// request.abort();
request.respond({
status: 404,
contentType: 'text/plain',
body: 'Not Found!',
});