@cckyi_boxxx
Май 11, 2020 18:58:52
До какой-то версии Qt у класса QWebEnginePage был метод setNetworkAccessManager, который позволял сделать задуманное, в более поздних версиях его зачем-то убрали, как теперь это делать - непонятно.
Если никак без отката на борее старую версию PySide2, то какие еще могут быть пути для мониторинга и изменения данных в сетевом стеке QWebEngine, задача стоит мониторить все что туда поступает от и до (вебсокеты, js-запросы, POST, GET, итд), и при необходимости модифицировать данные перед отправкой в инет.
P.S.: QWebEngineUrlRequestInterceptor не подходит ибо он дает модифицировать только хидеры, а получаемая от него информация крайне скудна.
@cckyi_boxxx
Май 13, 2020 17:09:43
Попробуем поменять задачу, быть может кто знает как мониторить и изменять сетевой стек всего приложения ? Мне тут подумалось просто из каждого QWebEngineView через interceptor добавлять уникальный http хидер, а в общем сетевом стеке приложения по ним разбирать откуда прилетело, удалять хидер, править что нужно, и слать в инет.
@cckyi_boxxx
Май 16, 2020 14:44:54
Короче если кто еще будет совокупляться с этой проблемой - не тратьте свое время, нихрена не выйдет. Единственный костыль который помогает - это совместное использование QWebEngineUrlRequestInterceptor для мониторинга простых запросов совместно с JS-инжектами для остальных задач. Пробовал запускать софт с параметром –remote-debugging-port=<port_number> и тогда на локалхосте по указанному порту появлялся стандартный браузерный отладчик, но это хреновый путь ибо никаких модификаций на лету не замутить, да и дополнительный инстанс QWebEngineView для отладчика оперативу поджирает. А еще насинается срач в консоль, что при использовании pythonw.exe скорее всего приведет к багам (еще не испытал конкретно этот пример но все что туда срет должно вызывать эти глюки)
хех вот-бы найти способ отлавливать в интерцепторе инстансы QWebEngineHttpRequest а не QUrl - была-бы ваще сказка.