Реализовал систему кеширования, пока не универсальную, под мой проект.
Для разработки ботов для сайтов - пушка!
В моем кейсе кол-во запросов к реальному серверу сократилось с 80 до 10
А скорость загрузки с 8 сек до 0.8 сек (в 10 раз!) 🤫
Кроме ускорения загрузки страниц, как и скорости работы бота - еще более мощный бенефит в следующем:
Если сайт жестко ограничивает кол-во запросов, то мы их и не будем отправлять.
Так в моем кейсе на одну загрузку страницы тратится 50 запросов через playwright, тк часть кеширования урезана.
При работе через обычный браузер - это 16 запросов.
Сайт же ограничивает кол-во запросов до 200шт за 5 минут, после чего блокирует до окончания этого периода.
В таком режиме бот будет работать медленнее человека...
А с такой системой кеширования, бот не то-что просто будет работать быстрее, за счет мгновенного выполнения всех действий на странице, так еще и в 1.5 раза больше действий имеет право делать, не выходя из лимитов!
Я рад, мне нравится, надеюсь я правильно определил bottleneck, и теперь работа попрёт 😈
Подключается она всего в две строки сейчас, в будущем интерфейс будет изменен, естественно:
const browser = await chromium.launch(launchOptions);
const context = await browser.newContext();
const page = await context.newPage();
const cache = new PWCache(page);
await cache.run();
await page.goto('https://example.com');
