Opa!
Pelo que você descreveu, grande parte do trabalho já está realizado e creio que a parte de montagem de requests/parsing/métodos já esteja bem encaminhado.
Nesse caso aconselho o uso do SeleniumBase, que é praticamente uma lib que usa base Selenium mas também adiciona algumas funcionalidades extras, entre elas realizar o download de um documento intergindo com as janelas do sistema operacional.
Acredito que isso resolverá a sua demanda, segue o link de alguns exemplos:
- https://github.com/seleniumbase/SeleniumBase/blob/master/examples/test_download_files.py
- https://github.com/seleniumbase/SeleniumBase/blob/master/examples/test_download_images.py
Bons estudos!