Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let ingnoredUrls = [];
- let targetUrls = [];
- let urlsQueue = [...document.querySelectorAll('a')].map(url => url.href).filter(url => !ingnoredUrls.includes(url));
- let urlIterator = 0;
- parseUrl(urlsQueue[urlIterator]);
- function parseUrl(url) {
- console.log('Попытка спарсить страницу: ' + url + ' Порядковый номер ' + urlIterator);
- if (/^tel/.test(url)) {
- urlIterator++;
- parseUrl(urlsQueue[urlIterator]);
- } else {
- let newWindow = window.open(url);
- let initTime = Date.now();
- let interval = setInterval(() => {
- if (((Date.now() - initTime) / 1000) > 300) {
- console.log('Время ожидание превышено (5 минут), переходим к следующей');
- clearInterval(interval);
- urlIterator++;
- parseUrl(urlsQueue[urlIterator]);
- newWindow.close();
- }
- }, 1000);
- newWindow.addEventListener('load', () => {
- setTimeout(() => {
- let newTargetUrls = document.querySelectorAll('.js-openMunchkinCouponEventModal:not(.hidden)');
- if (newTargetUrls.length) {
- targetUrls.push(url);
- }
- addNewUrlsInQueue([...document.querySelectorAll('a')].map(url => url.href).filter(url => !ingnoredUrls.includes(url)));
- urlIterator++;
- console.log('Найдено страниц с промокодом: ' + targetUrls.length);
- if (targetUrls.length) {
- console.log('Массив страниц с промокодами: ' + targetUrls)
- }
- clearInterval(interval);
- parseUrl(urlsQueue[urlIterator]);
- newWindow.close();
- }, 1500)
- });
- }
- }
- function addNewUrlsInQueue(urls) {
- urlsQueue = [...urlsQueue, urls.filter(url => urlsQueue.includes(url))]
- }
- //Если скрипт остановился или нужно прервать на время то можно узнать пройденные ссылки с помощью команды urlsQueue.slice(0, urlIterator) и вставить их в переменную ingnoredUrls чтобы не проходить второй раз
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement