Как скачать файл на python 3 инструкция с примерами

Как скачать файл на python 3

Для скачивания файлов в python есть очень мощная библиотека — requests. Почти все свои программки для работы с сайтами я пишу с использованием этого модуля. Он удобный, быстрый и многофункционален. Позволяет изменять headers, body, скачивать и заливать файлы. В этом посте я хочу рассказать вам как с легкостью качать файлы на питоне.

Простой запрос страницы через requests

Запросить код сайта можно обычным запросом requests.post(«http://bdseo.ru»).

Как вывести содержимое страницы после запроса

Чтобы обрабатывать результаты, нужно запросу присвоить переменную:

Теперь можно вывести результат запросом r.text (или print(r.text)).

Как сохранить страницу html через requests

1. Делаем запрос.
2. Записываем данные в файл.
На примере (полный код программы):

После этого на диске Д появился файл с содержимым главной страницы моего блога. Иногда может потребоваться сменить кодировку текста (питон буде подсказывать, выдавать ошибки).

Примеры запросов requests на python 3

Скачивать файлы можно посредством POST или GET запросов. Сам код запроса почти одинаковый:

Где:
send_request — моя переменная, сам запрос. Нужна для дальнейшего обращения к результатам (например, send_request.text — выведет весь код страницы; send_request.url — ссылка страница, если был редирект — то ссылка-редиректа; send_request.headers — код-хедерс страницы);
my_head — если я менял headers, то передаю свои параметры (например, подменил User-agent);
params — параметры запроса; например, логин/пароль.

Как сохранить файл через python (модуль requests)

Логика скачивания файла следующая:
1) делаем запрос на ссылку файла;
2) записываем данные в файл на ПК.

Выглядит все этого следующим образом (полный код программы):

Данный код скачает файл на диск Вашего компьютера. Обратите внимание на комментарии — режим записи ‘wb’, сохраняем ‘content’. Закрывайте файл после запроса.

Как скачать файл через прокси в python

Модуль requests имеет подробную документацию (на английском) — http://docs.python-requests.org/en/master/. Работать с сайтами можно и через прокси, для этого достаточно добавить в запрос данные по прокси.
Пример кода:

Обратите внимание, что некоторые сайты могут блокировать публичные прокси, а также дополнительно запрашивать капчу (редко, но бывает).

Как скачать много файлов с сайта

Чтобы скачать много файлов — пользуйтесь циклами. Чтобы получить ссылки с сайта, если вы хотите скачать много файлов — «просканируйте» сайт на эти ссылки, а потом делайте запросы. Это можно делать также модулем requests в python 3, но это уже совсем другая тема.

  • А как сделать вывод загрузки?

    То есть, вот я уже давно пользуюсь модулем requests. Скачиваю по одной серии сериал, он как бы автоматически скачивает одну серию, уведомляет меня и если я этого хочу, скачивает следующую.

    И как сделать вывод, вот например, «56% завершено». Посылая запросы на сайт, можно ли отследить загрузку?

    • Вариантов много, можно в tkinter, если просто через консоль (или IDLE) тоже можно.
      Гуглится просто: «progressbar download requests«; первые примеры на stackoverflow очень простые и полезные :)

    • спасибо за комментарий, мне приятно.

Добавить комментарий для Алексей Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *