Снижение
Если не доступны другие файлы с более низким разрешением → нет. Если на сервере не существует какого-либо API или чего-то еще, вы хотите загрузить файл (изображение), который изменяет его на сервере перед отправкой содержимого в ответ.
Однако вы можете проверить, поддерживает ли веб-сайт gzip
или другое сжатие, и убедиться, что вы сначала загрузили сжатый ответ, например, с этим ответом и затем распакуйте его перед сохранением файла, например с gzip
или zlib
.
Для принудительного использования попробуйте использовать определенные заголовки , такие как Accept-Encoding
.
Ограничение
Создайте простой счетчик для данных (вы можете подсчитать байты во время обработки или после загрузки ), и если вы не хотите, например, достичь. более 100 МБ за 5 минут или около того, а затем просто введите time.sleep()
для каждого загруженного фрагмента 100 МБ.
Незначительные ноты
Thread
не поможет вам распараллелить работу, используйте multiprocessing.Pool
или лайки, чтобы действительно разделить работу на несколько процессов, чтобы вы могли получать (случайные числа) например 100 файлов на процесс в течение 1 минуты - до 400 файлов, загруженных 4 процессами одновременно, каждый из которых загружает 100 файлов.