Асинхронное скачивание файлов с помощью Python | Progress bar | Прогресс-бар на Python

Поделиться
HTML-код
  • Опубликовано: 6 авг 2023
  • ⚡️ Практика Python ⚡️
    В данном видео пишем код для скачивания файлов как синхронного так и асинхронного на Python плюс добавляем прогресс-бар. В работе используем библиотеки requests, asyncio, httpx и tqdm.
    💰 Поддержать проект:
    / pythontoday
    yoomoney.ru/to/410019570956160
    🔥 Стать спонсором канала:
    / @pythontoday
    Код проекта в telegram канале:
    t.me/python2day
    ****Ссылки****
    Дешевый/надежный сервер в Европе:
    zomro.com/?from=246874
    promo_code:
    zomro_246874
    Хороший proxy сервис:
    proxy6.net/a/149995
    С нуля до 100 000 за полгода | Что должен знать JUNIOR PYTHON разработчик в 2023
    • С нуля до 100 000 за п...
    КАК ЗАПУСТИТЬ TELEGRAM БОТА ИЛИ ПАРСЕР НА СЕРВЕРЕ
    • КАК ЗАПУСТИТЬ TELEGRAM...
    8000р за вечер на фрилансе | Обучение парсингу на Python
    • 8000р за вечер на фрил...
    Неуловимый русский хакер | Банковские трояны, шифровальщики, хакерский клуб и миллионы долларов
    • Неуловимый русский хак...
    Программы на Python | Авто переводчик с разных языков в чате на Python | Python socket
    • Программы на Python | ...
    OSINT Python | Как найти человека в интернете? | Поиск по социальным сетям
    • OSINT Python | Как най...
    Выполняем тестовое задание на Junior Python разработчика с зарплатой 70000р:
    • Выполняем тестовое зад...
    Зарабатываем на фрилансе | Requests, bs4 и телеграм бот на aiogram:
    • Обучение парсингу на P...
    Вычисляем по IP с помощью Python | Как определить местоположение по IP:
    • Вычисляем по IP с помо...
    Как узнать пароль от Wi-Fi с помощью Python | Достаем пароли от Wi-Fi точек доступа в Windows:
    • Video
    Python с нуля | if _name_ == '__main__' | Зачем? И почему нужно использовать
    • Python с нуля | if __n...
    Асинхронный парсинг на Python | Ускоряем код в 10 раз
    • Асинхронный парсинг на...
    Плейлист по распознаванию лиц на Python:
    • Распознавание лиц | Fa...
    Плейлист по парсингу сайтов на Python:
    • Парсинг/Scraping
    Плейлист по Instagram боту:
    • Instagram Bot на Pytho...
    Плейлист по Linux для новичков:
    • Linux для начинающих
    Код в телеграм:
    t.me/python2day/3428
    ****Соц.сети****
    Telegram: t.me/python2day
    t.me/python2day/3428
    #фриланс #заработоквинтернете #python #requests #asyncio #progressbar #httpx

Комментарии • 78

  • @deus7204
    @deus7204 10 месяцев назад +11

    Что творит этот шерстяной зверь 😀 Благодарю за практику дружище!

    • @PythonToday
      @PythonToday  10 месяцев назад

      Спасибо за фидбэк друг))

  • @kent5140
    @kent5140 10 месяцев назад +12

    Спасибо за неоценимый контент!
    Как всегда все по полочкам, лучший ментор!

    • @PythonToday
      @PythonToday  10 месяцев назад

      Большое спасибо за фидбэк!

  • @vigauss1889
    @vigauss1889 10 месяцев назад +5

    Как всегда полезно и актуально, спасибо! Лучший практический канал по питону

    • @PythonToday
      @PythonToday  10 месяцев назад

      Большое спасибо!

  • @voaldr
    @voaldr 10 месяцев назад

    Понял весьма поверхностно, в связи с таким же знанием питона :), ролики смотрю "на вырост", так сказать. Удачи в начинаниях!

  • @WounderVaflel
    @WounderVaflel 10 месяцев назад

    Контент - моё почтение, давай больше такого

  • @user-pd1xn9et3m
    @user-pd1xn9et3m 9 месяцев назад

    Класс! Огромная благодарка! Это то, что мне как раз надо.

  • @i_cooler
    @i_cooler 10 месяцев назад +4

    Сразу лайк, перед просмотром. Уверен инфа полезная👍👍

    • @PythonToday
      @PythonToday  10 месяцев назад +1

      Спасибо за интерес и поддержку!

  • @user-wm6ky9od1r
    @user-wm6ky9od1r 10 месяцев назад +3

    Благодаря автору начал изучать Пайтон и продолжаю изучать 😊 Спасибо за качественный контент 👍

    • @PythonToday
      @PythonToday  9 месяцев назад

      Рад, что полезно! Большое спасибо за фидбэк!

  • @Zer-st6qv
    @Zer-st6qv 10 месяцев назад +4

    Спасибо за полезную информацию! Кошак огонь😅

    • @PythonToday
      @PythonToday  10 месяцев назад

      Спасибо за фидбэк!

  • @user-zh8ze4iw2n
    @user-zh8ze4iw2n 6 месяцев назад

    Спасибо большое. Полезное видео, да и скачивание файлов для программиста задача не последняя.

  • @maximkuchiga141
    @maximkuchiga141 8 месяцев назад

    Спасибо большое за материал!

  • @pavelkharitonov9065
    @pavelkharitonov9065 8 месяцев назад

    Вот что мне нравится в твоих роликах, что так легко все подается и за короткий ролик действительно огромное количество полезной и понятной информации. Супер! Можно уже даже отдельный курс делать " Как надо подавать информацию"
    Подскажи, пожалуйста, а какие англоязычные ресурсы по парсингу на питоне можешь посоветовать?

  • @RuVl_13
    @RuVl_13 9 месяцев назад

    Это шедевр ❤

  • @Olegatronics
    @Olegatronics 9 месяцев назад

    Спасибо тебе автор, как всегда, вроде не совсем для новичков, но понятно как никогда, продолжай в том же духе. :)

    • @PythonToday
      @PythonToday  9 месяцев назад

      Большое спасибо за фидбэк!

  • @dmitryzagorevskiy507
    @dmitryzagorevskiy507 10 месяцев назад

    Отлично! Думаю GPT обучался на твоих роликах)

  • @user-df3jd5sp9y
    @user-df3jd5sp9y 2 месяца назад

    Видео супер! Еще бы добавили поддержку прокси и эмуляцию юзер-агента.

  • @rinatyagafarov5328
    @rinatyagafarov5328 10 месяцев назад

    Благодарю за видео. Взял себе на вооружение.🔥🔥🔥

    • @PythonToday
      @PythonToday  10 месяцев назад +1

      Благодарю за фидбэк!

  • @TheAutonomoos
    @TheAutonomoos 10 месяцев назад

    Отличный гайд, спасибо!

    • @PythonToday
      @PythonToday  10 месяцев назад

      Спасибо за поддержку!

  • @nakamasama
    @nakamasama 10 месяцев назад +1

    О, вот это годная тема

  • @oleksiistri8429
    @oleksiistri8429 9 месяцев назад

    Просто супер, дякую👍

  • @marakass_tv9275
    @marakass_tv9275 9 месяцев назад

    Респект тебе огромный! Замечательный контент и канал, когда смотрю думаю как легко все получается😅а когда сам сажусь, хочется пальцы себе повыдергивать😅респект еще раз

    • @PythonToday
      @PythonToday  9 месяцев назад

      Спасибо за поддержку!

  • @user-my9sg8we9h
    @user-my9sg8we9h 10 месяцев назад

    Вооот. Давно хотел себе такой шаблончик для скачивания сделать, что б и прогресс и асинхрон

  • @flacsy9829
    @flacsy9829 10 месяцев назад

    Спасибо ❤

  • @gaben_aTan
    @gaben_aTan 9 месяцев назад

    Спасибо автору за работу. Благодаря вашему каналу Питон стал мне мегадругом, автоматизирующем рутинные задачи. Пока я смотрю канал , три скрипта крутятся в режиме нон стоп, делают свою работу. Еще немного и начну донатить автора канала, ибо сделал первый заказ. Спасибо автору канала!!!!!! 😁👍👍👍👍👍👍👍👍👍

    • @PythonToday
      @PythonToday  9 месяцев назад

      Спасибо за фидбэк! Рад что видео интересны и помогают

    • @grandiel1
      @grandiel1 8 месяцев назад

      Какие 3 скрипта интересно, если не сложно ответить

  • @user-cx6sc6oo4q
    @user-cx6sc6oo4q 9 месяцев назад +1

    8192 означает, что данные будут скачиваться порциями по 8192 байта. Это распространенное значение, потому что это размер буфера по умолчанию для чтения данных из сети. Больший размер чанка может увеличить скорость передачи данных, так как меньше будет накладных расходов на передачу заголовков и установление соединения. Однако, слишком большой размер чанка может привести к проблемам с памятью или сетевыми ограничениями.

    • @PythonToday
      @PythonToday  9 месяцев назад

      Большое спасибо за фидбэк!

    • @negative-example
      @negative-example 9 месяцев назад +1

      Мне кажется, они именно в код программы будут выдаваться по 8192 (это обертка над си-шной функцией recv(), которая забирает принятые данные их из ядра в буфер, и передает размер буфера, чтобы не было buffer overrun). А то, как они будут передаваться - зависит от настроек TCP - размера окна и так далее. Играя с этим количеством (8192) нельзя ни ускорить, ни замедлить скачивание. (ну замедлить-то можно, если постараться - но зачем?). В общем, можно тупо ставить 8192, либо проверить гораздо большее значение - если сеть очень быстрая, а диск и комп очень медленные, то слишком маленькое значение может тормозить скачивание. Но для современных компов и SSD/NVMe - это не проблема.

  • @igordobrynin3684
    @igordobrynin3684 10 месяцев назад

    всегда актуальный контент как специально для меня снимают

  • @gzwoq
    @gzwoq 10 месяцев назад +1

    Очень хотелось бы увидеть видео по парсингу сбермегамаркета!

  • @VlassovMikhael
    @VlassovMikhael 10 месяцев назад

    Vlasovv тут! Контент на высоте, интересно посмотреть нетривиальные решения задач, что-то подчерпнуть)

  • @edgull_tlt
    @edgull_tlt 10 месяцев назад

    Спасибо за видео, было интересно.
    Про скачивание с плейлистов ютуба планируется ролик?

    • @PythonToday
      @PythonToday  10 месяцев назад

      Спасибо за фидбэк! На ютубе не будет данной темы, это бан

  • @toxid1101
    @toxid1101 10 месяцев назад

    Спасибо за видос, но есть вопрос)) Первый вариант работает отлично, а вот при асинхронном скачивании вижу пустой терминал, и файлы создаются с нулевым весом. Пробовал и под виндой и под линуксом.

  • @user-yo4nd6tm1h
    @user-yo4nd6tm1h 10 месяцев назад +1

    Привет, замечательный ролик как всегда,ты на высоте и равных тебе контенту нету. Скажи пожалуйста,как минимум прошу ответь хоть что-то, чтоб мои самотерзания прошли. Я вот начал учиться примерно месяц и 11 дней, ну прям очень нелегко идёт, есть желание, хочу влиться в эту сферу, а ещё вариантов других ну реально нету, мне 25 лет, уделяю по 4 часа в день 6 дней в неделю, мозг и от этого взрывается, но давлю, стараюсь, я не очень легко и быстро усваиваю информацию, ты когда-то в ролике тоже говорил, что тебе тяжело даётся информация и ты можешь перечитывать что-то по сто раз. Есть два вопроса. Первый, может тебе в подмастерье так сказать нужен человек который бы помогал тебе с контентом или работой какой-то, с каким-то кодом, ну условно знаешь как берут на стажировки? Я пойду абсолютно бесплатно и без каких либо притензий на что угодно, мне просто получать ценные знания, потому что такой ментор как ты это уже золото. Я бы что-то старался учить, проверять, выполнять какой-то код под малехоньки твоим руководством, может у тебя есть такая опция? И второй вопрос, реально трудно с деньгами, но из опыта за это время пока вижу что Chat GPT 4 plus очень крутая тема, я из твоего ролика через консольку устанавливал, но там он даже пишется что 4, но на самом деле на базе 3.5, но с доступом к интернету, но всё равно не то, сравнивал с 4 плюс, знакомый давал аккаунт, была у него подписка. Для эффективной учебы стоит есть хлеб без масла, но учиться с Chat GPT 4 plus? Пробовал другие аналоги, бард сырой как окунь, claude тоже так себе, на задачах из Codewars они сгорают все, или на каком-то этапе где строчек кода становися больше тоже просадка идёт. Хотя промты ставался давать максимально граммотные.

  • @adreno97
    @adreno97 9 месяцев назад +1

    Лайкните чтоб контента побольше стало

  • @0_mxd_0
    @0_mxd_0 10 месяцев назад

    Извиняюсь за оффтоп, но я начал изучать js, вы не знаете каналы похожие на ваши по js, такие же интересные и информативные. Заранее спасибо, обнял

  • @user-zm1vk9bw1y
    @user-zm1vk9bw1y 10 месяцев назад

    а название первого муз . трека подскажите плиз!) заранее спасибо!

  • @the_Slap4WWWW
    @the_Slap4WWWW 10 месяцев назад

    Можете пожалуста помочь, в программе Pycharm когда я нажимаю run выдает ошибку CDK как ее исправить?

  • @YuriyShevtsov
    @YuriyShevtsov 10 месяцев назад +1

    Как в мемасике "как нарисовать сову" :(
    в плане из коробочки достается многопоточность завернутая в асинк апи - интересно многие ли из тех кто был не в курсе как это делать, поняли что происходит?
    но для себя узнал что в питон завезли корутины, спасибо )

  • @user-hk4bq8be1d
    @user-hk4bq8be1d 9 месяцев назад +2

    Я конечно извиняюсь, но этот tqdm просто так выбесил! Вот простой пгбар и не парьтесь :
    def progress_bar(position,total,char='█',length_of_bar=60):
    a=position/total
    perc=int(a*100)
    out='['+char*int(a*length_of_bar)+'_'*int(length_of_bar-int(a*length_of_bar))+']'
    print(colorama.Fore.GREEN+f'
    {out} {perc}%',end='
    ')

  • @kuznalol
    @kuznalol 10 месяцев назад

    А для чего может понадобиться скачивать файл именно таким способом?

  • @zubarer
    @zubarer 10 месяцев назад +1

    Приуэт

  • @user-zm1vk9bw1y
    @user-zm1vk9bw1y 10 месяцев назад

    Уважаемый Автор!!! а хотелось бы плюсом к годному контенту узнать название первой музычки)))

  • @flobihcg
    @flobihcg 10 месяцев назад +1

    chunk_size = 8192 байта = 8 килобайт
    Сохранять по 8 килобайт оптимально, безопаснее и частично быстрее, чем весь файл полностью

    • @PythonToday
      @PythonToday  10 месяцев назад

      Это понятно, почему не 16, 32 или 4

    • @minimus91
      @minimus91 10 месяцев назад

      Может дело в размере кластера в NTFS. Когда-то читал информацию об этом, но не помню нифига)

    • @defoliant
      @defoliant 10 месяцев назад

      Я так понимаю это из-за спецификации IPv4
      Fragment offset
      This field specifies the offset of a particular fragment relative to the beginning of the original unfragmented IP datagram. The fragmentation offset value for the first fragment is always 0. The field is 13 bits wide, so that the offset can be from 0 to 8191 (from (20 -1) to (213 - 1)). Fragments are specified in units of 8 bytes, which is why fragment length must be a multiple of 8.[37] Therefore, the 13-bit field allows a maximum offset of (213 - 1) × 8 = 65,528 bytes, with the header length included (65,528 + 20 = 65,548 bytes), supporting fragmentation of packets exceeding the maximum IP length of 65,535 bytes.
      А также 8 килобайт - это ровно два сектора памяти NTFS, FAT и всего что было тогда, когда это придумывали.

  • @temarukz
    @temarukz 3 месяца назад

    На Windows 10 данный код неработает ((( async

  • @user-bk2ve6nf
    @user-bk2ve6nf Месяц назад

  • @dictition
    @dictition 10 месяцев назад

    Чевоооооо

  • @alexchto
    @alexchto 9 месяцев назад

    asyncio встроенная библиотека. не нужно скачивать

  • @ZemskovX
    @ZemskovX 10 месяцев назад

    Через несколько лет такие программы и сложнее будет писать ии на отлично. Смысл теперь изучать программирование?

    • @PythonToday
      @PythonToday  10 месяцев назад +7

      Никакого, бросай всё если начинал

  • @joramotorsportteam3277
    @joramotorsportteam3277 10 месяцев назад +3

    Super, no...
    Rossijani, tak vi ponjali nakonec chto nado s putlerom konchatj!!! Davno na pensiju pora i na minimalke postj dozivajet!!!🎉

    • @ve2376
      @ve2376 10 месяцев назад +3

      Ну е-мое, тут же не место.

    • @Arbuzdog
      @Arbuzdog 10 месяцев назад +1

      Приплёл, так приплёл

    • @joramotorsportteam3277
      @joramotorsportteam3277 10 месяцев назад +2

      @ve2376 Mesta vezde, chtobi ljudi nakonec to ponjali, chto putler glavnij fashist stoletija a v Ukraine 🇺🇦 mnogo nashli fashistov?

    • @ve2376
      @ve2376 10 месяцев назад

      @@joramotorsportteam3277 Это как-то влияет на асинхронный код?
      Вне зависимости от отношения людей к войне? Тут люди и так в курсе событий в мире в большинстве своем. И наверное обсуждают это на других каналах.

    • @meatboyold2666
      @meatboyold2666 8 месяцев назад

      ​@@joramotorsportteam3277ты хуже обассаных бабкиных трусов

  • @tenmaxim1904
    @tenmaxim1904 10 месяцев назад

    Почему асинхронное скачивание? Оно синхронное??? А в целом за материал спасибо ✊

    • @defoliant
      @defoliant 10 месяцев назад +1

      Синхронное - это плавание))
      А скачивание вышло одновременное, параллельное, но асинхронное
      Если было бы синхронное - одна закачка блокировала бы другую и файлы качались бы по очереди.
      ru.wikipedia.org/wiki/%D0%90%D1%81%D0%B8%D0%BD%D1%85%D1%80%D0%BE%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D1%8C