Как удалить весь javascript из загрузки страницы, кроме того, что встроено в pupeteer html

#javascript #node.js #puppeteer

Вопрос:

Ну, ребята, у меня есть этот скрипт, который добавляет товар в корзину, но мне нужно, чтобы он работал как можно быстрее, в настоящее время он работает около 19 секунд, если вы запустите этот код, конечно, есть ряд факторов, которые следует учитывать, один из них-время отклика сайта и все такое … Ну, я взял почти все ресурсы на этом сайте, чтобы быстрее загружаться

https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest/ResourceType

Но я не удалял загрузку скрипта (javascript), но я хочу удалить весь javascript со страницы, кроме того, что встроено в html, то есть я хочу запретить все ссылки на файлы javascript, кроме javascript, который вставлен в html, и я хотел бы знать, можно ли отключить загрузку текста html, это мой код:

 const puppeteer = require('puppeteer');       
const fs = require('fs').promises;                                                                                                              
(async () => {                                                                    
 try{                                              
  console.log("Started!")                        
  const browser = await 
  puppeteer.launch({         
   executablePath:'/usr/bin/chromium',            
   headlesss:false,                                
  });
 const page = await browser.newPage();      
 await page.setViewport({ width: 1920, height: 1080 });                                          
 await page.setRequestInterception(true);        
 const blockedResourceTypes = ["image", "bacon", "imageset", "font", "stylesheet", "main_frame", "sub_frame", "object", "texttrack", "csp_report"]
 const allowedRequest = req => !blockedResourceTypes.includes(req.resourceType())                       
 page.on('request', (req) => {                    
  if (allowedRequest(req)) {                       
   req.continue();                                
 }                                               
  else {                                           
   req.abort();                                   
  }                                             
 });                                             
 const cookiesString = await 
 fs.readFile('./cookies.json');                                      
 const cookies = JSON.parse(cookiesString);
 await page.setCookie(...cookies);               
 await page.goto('https://www.nike.com.br/chuteira-nike-phantom-gt-elite-3d-unissex-153-169-171-316414?gridPosition=A1', { waitUntil: 'load', timeout:0});
 await page.waitForXPath('//label[@for="tamanho__idM40F395"]', { visible:true, timeout:0});      
 const tamanho = await page.$x('//label[@for="tamanho__idM40F395"]')                            
 await tamanho[0].click('//label[@for="tamanho__idM40F395"]');                                   
 await page.waitForSelector('button#btn-comprar')                                                
 await page.click('button#btn-comprar')
 console.log("Add to car!")         
}
catch{                                           
 console.log("Error, element not found or unexpected error")}               
})();
 

Как я могу удалить весь javascript, кроме javascript, встроенного в html?

Комментарии:

1. Я видел несколько вопросов по этому поводу от вас, и у меня есть ощущение, что вы пытаетесь решить какую-то основную проблему. Вы уверены, что это не проблема xy ? Разве почти все сценарии, которые загружает страница, не будут встроены в HTML? Это кажется довольно произвольным решением блокировать динамически вводимый JS, но не статически присутствующий скрипт-можете ли вы объяснить, почему вы принимаете это решение и какую цель это должно выполнять для вашего приложения? Спасибо.

2. Мой скрипт полностью готов, единственное, что я хочу, наконец, закончить, — это убедиться, что выполняется только javascript, встроенный в html, и, если возможно, удалить загрузку некоторых html-тегов, мой скрипт уже работает, проблема в том, что он запускается за 18 или 19 секунд, и я хочу сделать это быстрее, вот почему

3. Сценарий готов, я просто хочу его улучшить

4. Звучит неплохо, я думал, что что-то вышло из строя или как-то иначе сломалось. Спасибо за разъяснение.

Ответ №1:

Мне удалось заблокировать все файлы с расширением .js после того, как я внимательно изучил Google, я использовал этот код:

 req.url().endsWith('.js')
 

А затем после этого я использую if, чтобы создать структуру условий и сообщить своему коду, должен ли он загружаться или прерываться, с req.continue или req.abort