Mesuti, порядок важен. Вы используете сценарии не в том порядке, видимо. Сначала редирект с www на не www, потом ssl, потом обработка строки url'а. А вообще, не сильно понял, что нужно делать, а не то, что имеете.
Интересный подход к тестам! Но у меня браузерный web.whatsapp не прокатит, так как телефонов нет. Appium использую, но не уверен в решении для 10-20 номеров...
Как дополнение к п.1 Файлы в архиве:
Если заказчик не доверяет и с техническим критинизмом, то будет печаль :) А вообще, в каждой панели управления хостингом есть бэкап сайта, и это самое простое решение.
dancer_and_programer,
1. переходим в окно чата, открывается чат.
2. Удаляем переменную window.activeResult
2. запускаем инъекцию на JS driver.execute_script('(function(){ /* тут код скреппера */})();')(эта функция запустит сама себя). Она должна сканировать и скроллить, готовя массив того, что найдет. Когда скрипт закончит работу, сохраняем его результат в window.activeResult
3. Ждем окончания выполнения, например, ожидая значения переменной window.activeResult объекта window. Это можно реализовать либо циклом через таймауты, либо через метод text_to_be_present_in_element_value. (нужно будет загуглить, как он работает, так как сохранять данные тогда нужно не в activeResult, а в value свойстве элемента DOM.
4. Забираем результат res = driver.execute_script('return window.activeResult')
dancer_and_programer, цикл прокрутки нужно ставить не со стороны Python, а со стороны JS кода. Результаты парсить можно в результате выполнения метода execute_script num = driver.execute_script('return myScraper()')
dancer_and_programer, мое решение было бы чуток другим. Я бы написал парсер на JS как функцию и одним вызовом ее выполнил и забрал бы ее значение. Если нужно подождать, дал бы ей 10 секунд и потом забрал бы значение. Собери данные в Object на стороне чата. Это можно сделать в DevTools у Chrome в закладке Sources > Snippets
dancer_and_programer, нужно выполнять твой скрипт до тех пор, пока не закончится скроллинг. Это можно косвенно проверять по размеру height этого контейнера. А лучше делать "Скролл", потом парсинг, потом скролл, потом опять парсинг и так до тех пор, пока не достигнешь конца. Твой скрипт вполне себе работает.
Итак, дело в том, что обычный скроллинг не доскроллит до верха, так как в контейнере '.yamb-conversation__content' на самом деле всегда до 9 постов и когда ты скроллишь вверх, на самом деле нижние 4 исчезают из дерева DOM, а 4 сверху появляются. Поэтому, нужен более интересный парсер строить.
nokimaro, оказалось все просто! Так как я отправлял запрос по цепочке //server1 js > //server1 php > //server2 php, другими словами, файлик sender.php вызывается фронтэндом по fetch, а так как фронт с сервисвокером и кешем, я забыл в сервисвокере заблокировать кеширование этого файлика... Вопрос закрыт! Спасибо за участие!
К сожалению, бывают и чудеса! Есть подозрения, что так как это CORS, то первый запрос preflight, но он имеет метод POST тоже, что не должно быть так. Должен был бы быть OPTIONS...
Yaroslav O., пробовал скрины в selenium, максимальная скорость была 5fps. Пробовал PhantomJS, он не шарит в es6, поэтому мимо, так как ни GSAP, ни Anime.js, ни D3, ни Three.js не работают.
Принято решение анимировать Canvas, сохранять фреймы, а потом склеивать их ffmpeg в mp4 на сервере или прямо из Canvas Stream в Blob, и потом в WebM. Если станция будет справляться, то можно и CCapture применить, так как там лучше чтобы была и нормальный GPU, много памяти, и проц для рендера. Моя раб.станция 2xXeon E5-2678v3/128 DDR3 ECC/Sata3 SSD Raid 5 1Tb
Очень даже может быть. Я нашел, как скриншотить DOM элемент и засунуть в canvas. Делая это с определенной частотой, можно получить видео. А эта библиотека позволит это записать... Попробую и отпишусь. Спасибо!