6 способов загрузки файлов с URL-адресов с помощью запросов Python

Загрузка файлов по URL-адресам — распространенная задача в проектах очистки веб-страниц, анализа данных и автоматизации. Python предоставляет несколько библиотек для обработки HTTP-запросов, и одной из популярных является библиотека «запросов». В этой статье мы рассмотрим различные способы загрузки файлов по URL-адресам с использованием библиотеки запросов Python, а также приведем примеры кода.

Метод 1: использование метода get
Пример кода:

import requests
url = "https://example.com/file.txt"
response = requests.get(url)
with open("downloaded_file.txt", "wb") as file:
    file.write(response.content)

Метод 2: потоковая передача ответа
Пример кода:

import requests
url = "https://example.com/big_file.zip"
response = requests.get(url, stream=True)
with open("downloaded_file.zip", "wb") as file:
    for chunk in response.iter_content(chunk_size=8192):
        file.write(chunk)

Метод 3: использование метода head для получения размера файла.
Пример кода:

import requests
url = "https://example.com/file.pdf"
response = requests.head(url)
file_size = int(response.headers.get("content-length", 0))
with open("downloaded_file.pdf", "wb") as file:
    response = requests.get(url, stream=True)
    for chunk in response.iter_content(chunk_size=8192):
        file.write(chunk)

Метод 4. Обработка перенаправлений
Пример кода:

import requests
url = "https://example.com/redirect"
response = requests.get(url, allow_redirects=True)
with open("downloaded_file.txt", "wb") as file:
    file.write(response.content)

Метод 5. Загрузка с использованием аутентификации
Пример кода:

import requests
url = "https://example.com/secure_file.txt"
username = "your_username"
password = "your_password"
response = requests.get(url, auth=(username, password))
with open("downloaded_file.txt", "wb") as file:
    file.write(response.content)

Метод 6: одновременная загрузка нескольких файлов
Пример кода:

import requests
import concurrent.futures
urls = ["https://example.com/file1.txt", "https://example.com/file2.txt"]
def download_file(url):
    response = requests.get(url)
    with open(f"downloaded_{url.split('/')[-1]}", "wb") as file:
        file.write(response.content)
with concurrent.futures.ThreadPoolExecutor() as executor:
    executor.map(download_file, urls)

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

Не забывайте обрабатывать исключения, проверять URL-адреса и обеспечивать надлежащие разрешения при загрузке файлов из Интернета.