Python yêu cầu tải xuống hình ảnh

Cách tốt hơn là sử dụng gói yêu cầu. Đây là một ví dụ đơn giản để tải xuống một hình ảnh bằng cách sử dụng các yêu cầu

import requests

url = "//cdn.pixabay.com/photo/2020/05/12/17/04/wind-turbine-5163993_960_720.jpg"

r = requests.get[url]
with open["wind-turbine.jpg", "wb"] as f:
    f.write[r.content]

Tải xuống các tệp lớn với tính năng phát trực tuyến

phản ứng. iter_content

Trong đoạn mã trên, tất cả nội dung của hình ảnh sẽ được đọc vào bộ nhớ cùng một lúc. Nếu hình ảnh lớn, nó có thể tiêu tốn quá nhiều bộ nhớ

Ngoài ra, chúng tôi có thể đặt tham số stream thành True để truyền yêu cầu. Trong trường hợp này, chỉ có tiêu đề phản hồi được tải xuống. Chúng tôi có thể truy xuất toàn bộ hình ảnh bằng cách sử dụng response.content1 hoặc từng đoạn bằng cách sử dụng phương pháp response.iter_content

# Using requests to download large files.
with requests.get[url, stream=True] as r:
    with open["wind-turbine.jpg", "wb"] as f:
        for chunk in r.iter_content[chunk_size=1024]:
            if chunk:
                f.write[chunk]

phản ứng. thô

Khi streamTrue, chúng tôi cũng có thể sử dụng

import urllib.request

# The following way works. Ref: //stackoverflow.com/a/45358832/6064933
req = urllib.request.Request[url, headers={'User-Agent': 'Mozilla/5.0'}]
with open["wind_turbine.jpg", "wb"] as f:
    with urllib.request.urlopen[req] as r:
        f.write[r.read[]]
2 để tải xuống trực tuyến.
import urllib.request

# The following way works. Ref: //stackoverflow.com/a/45358832/6064933
req = urllib.request.Request[url, headers={'User-Agent': 'Mozilla/5.0'}]
with open["wind_turbine.jpg", "wb"] as f:
    with urllib.request.urlopen[req] as r:
        f.write[r.read[]]
2 là một đối tượng giống như tệp. Với sự trợ giúp của
import urllib.request

# The following way works. Ref: //stackoverflow.com/a/45358832/6064933
req = urllib.request.Request[url, headers={'User-Agent': 'Mozilla/5.0'}]
with open["wind_turbine.jpg", "wb"] as f:
    with urllib.request.urlopen[req] as r:
        f.write[r.read[]]
4, chúng ta có thể lưu hình ảnh như thế này

Chủ Đề