Знаю о реквесте и ХТТПклиенте но они не исполняют JS. Селениум в свою очередь кривой и функции ожидания в нем работают криво, так-же некоторые функции нужно реализовывать своими "костылями". В идеале что-то на POST\GET запросах но чтоб как-то реализовывало JS
Ни одной из проблем не было с селениумом за всё время использования, но раз уж приспичило, то dryscrape вроде как поддерживает жабаскрипт