[英]how to block ads with puppeteer, headless chrome
//http://winhelp2002.mvps.org/hosts.txt //For puppeteer I read in this host file: //now we read the host file var hostFile = fs.readFileSync('hosts.txt', 'utf8').split('\\n'); var hosts = {}; for (var i = 0; i < hostFile.length; i++) { var frags = hostFile[i].split(' '); if (frags.length > 1 && frags[0] === '0.0.0.0') { hosts[frags[1].trim()] = true; } } //When loading a page I then filter out requests for these domains (and optionally images): page.on('request', request => { var domain = null; if (task.input.blockads) { var frags = request.url().split('/'); if (frags.length > 2) { domain = frags[2]; } } if ((task.input.blockads && hosts[domain] === true) || (!task.input.includephotos && request.resourceType() === 'image')) { request.abort(); } else { request.continue(); } }); //This solution hugely improved the speed of our scraper.
但是我不知道這部分。 task.input.blockads這什么都不是,我一無所知。 任何想法?
這只是啟用/禁用檢查主機文件的參數。 如果您一直想要檢查,則忽略該部分
page.on('request', request => {
var domain = null;
var frags = request.url().split('/');
if (frags.length > 2) {
domain = frags[2];
}
// just abort if found
if (hosts[domain] === true) {
request.abort();
} else {
request.continue();
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.