Tải hình ảnh con trăn

Chúng tôi sẽ áp dụng phương pháp đầu tiên trong phần này. Chúng tôi sẽ sử dụng phản hồi. đối tượng thô để lấy dữ liệu hình ảnh và sau đó sao chép nó vào một tệp bằng thư viện đóng cửa Python

Để tải xuống một Hình ảnh bằng cách sử dụng Thư viện yêu cầu Hãy làm theo các bước sau

  1. yêu cầu nhập khẩu và thư viện đóng cửa
  2. Thực hiện một yêu cầu GET tới URL
  3. Mở tệp và Đặt nội dung thô của Hình ảnh vào đó

Dưới đây là một ví dụ tải xuống hình ảnh từ một URL bằng thư viện yêu cầu

import requests
import shutil

img_url = '//file-examples.com/storage/fefbfe84f862d721699d168/2017/10/file_example_PNG_500kB.png'
path = 'download.png'
r = requests.get[img_url, stream=True]
if r.status_code == 200:
    with open[path, 'wb'] as f:
        r.raw.decode_content = True
        shutil.copyfileobj[r.raw, f] 
        print['Image Downloaded Successfully'] 

Phương pháp số 2. Tải xuống hình ảnh bằng thư viện yêu cầu trong Python

Để tải xuống một hình ảnh bằng thư viện yêu cầu, chúng tôi cần đặt nó vào một số tệp, vì vậy chúng tôi sẽ sử dụng mô-đun Shutil cùng với thư viện yêu cầu. Chúng tôi sẽ tạo một yêu cầu HTTP bằng thư viện yêu cầu và sau đó tải xuống một tệp

import requests
import shutil

img_url = '//file-examples.com/storage/fefbfe84f862d721699d168/2017/10/file_example_PNG_500kB.png'
path = 'download1.png'
response = requests.get[img_url, stream=True]
with open['img.png', 'wb'] as out_file:
    shutil.copyfileobj[response.raw, out_file]
del response

Phương pháp số 3. Tải xuống hình ảnh bằng thư viện yêu cầu Python

Trong phương pháp này, chúng ta sẽ sử dụng phản hồi. nội dung và đặt nó vào một tệp bằng hàm write[] tích hợp. Hàm write[] dùng để ghi dữ liệu vào file. Xem ví dụ sau để tải ảnh bằng Python

import requests
import shutil

img_url = '//file-examples.com/storage/fefbfe84f862d721699d168/2017/10/file_example_PNG_500kB.png'
path = 'download2.png'
response = requests.get[img_url]
if response.status_code == 200:
    with open[path, 'wb'] as f:
        f.write[response.content]

Phương pháp số 4. Sử dụng các yêu cầu và Thư viện PIL trong Python để tải xuống tệp

Cách tốt nhất để tải xuống hình ảnh từ nguồn trực tuyến là sử dụng thư viện yêu cầu cùng với thư viện PIL. Thư viện PIL được sử dụng để Thao tác hình ảnh. Thư viện PIL là một trong những Thư viện thao tác hình ảnh python tốt nhất

import requests
from PIL import Image

r = requests.get['//file-examples.com/storage/fefbfe84f862d721699d168/2017/10/file_example_PNG_500kB.png', stream=True]
r.raise_for_status[]
r.raw.decode_content = True  
with Image.open[r.raw] as img:
    img.show[]
r.close[] 

Hướng dẫn nhanh về thư viện yêu cầu Python

Dưới đây là một số trường hợp sử dụng mô-đun yêu cầu python. Tôi hy vọng bạn sẽ thích chúng

Ví dụ số 1. Sử dụng thư viện yêu cầu để tải tệp lên máy chủ


import requests

files=[['file', open['client.py']]]
URL = '//0.0.0.0:8080/test'
r = requests.post[URL, files=files]
print[r.text]

Bài viết liên quan.

  • Nhận giá trị hàng đầu tiên của một cột nhất định trong Pandas
  • Mở trình duyệt web bằng Python
  • Thay đổi kích thước phông chữ trên một ô matplotlib

Trò chuyện với tôi

Tôi hy vọng bạn thích Hướng dẫn Python này💗. Bây giờ, đừng ngần ngại để lại tin nhắn tại haxratali0@gamil. com. Tôi trả lời mọi thư tôi nhận được. tôi sẽ rất vui được trò chuyện với bạn

Gần đây, tôi đang làm việc với một hệ thống từ xa và cần tải xuống một số hình ảnh mà mã của tôi cuối cùng sẽ xử lý

Tôi có thể đã sử dụng curl hoặc wget trên thiết bị đầu cuối của mình để tải xuống các tệp. Tuy nhiên, tôi muốn toàn bộ quy trình được tự động hóa cho người dùng cuối

Điều này dẫn tôi đến câu hỏi

Làm cách nào tôi có thể tải xuống Hình ảnh bằng Python?

Trong hướng dẫn này, tôi sẽ đề cập đến một số mô-đun có thể được sử dụng để tải xuống các tệp trong Python [cụ thể là hình ảnh]. Các mô-đun được bảo hiểm là. yêu cầu, wget và urllib

từ chối trách nhiệm. Không tải xuống hoặc sử dụng bất kỳ hình ảnh nào vi phạm điều khoản bản quyền của nó

Cài đặt

Mã được sử dụng trong hướng dẫn này đã được thử nghiệm trên hệ thống Ubuntu với Python 3. 6. 9 cài đặt

Tôi thực sự khuyên bạn nên thiết lập một môi trường ảo với tất cả các thư viện cần thiết để thử nghiệm. Đây là cách bạn có thể làm điều đó

$ virtualenv image_download
$ source ./image_download/bin/activate
$ pip3 install requests wget

Hình ảnh mà chúng tôi sẽ sử dụng trong hướng dẫn nằm ở đây. Nó miễn phí cho mục đích thương mại và không yêu cầu bất kỳ sự ghi công nào

Hình ảnh được cung cấp bởi Sean Wareing từ Pixabay

URL hình ảnh mà chúng tôi sẽ sử dụng để tải xuống sẽ là

//cdn.pixabay.com/photo/2020/02/06/09/39/summer-4823612_960_720.jpg

Chúng tôi sẽ tạo một tập lệnh ngắn để tải xuống hình ảnh từ một URL nhất định

Tập lệnh sẽ tải xuống hình ảnh liền kề với tệp tập lệnh và tùy chọn, giữ nguyên tên tệp gốc

Mô-đun yêu cầu

Yêu cầu là một thư viện HTTP gọn gàng và thân thiện với người dùng trong Python. Nó giúp gửi HTTP/1. 1 yêu cầu cực kỳ đơn giản

Đây dường như là phương pháp ổn định nhất và được đề xuất để tải xuống bất kỳ loại tệp nào bằng Python

Nguồn. Giphy

Đây là toàn bộ mã

Nguồn. Tác giả

Đừng lo lắng. Hãy chia nhỏ từng dòng một

Chúng tôi sẽ bắt đầu bằng cách nhập các mô-đun cần thiết và cũng sẽ đặt URL hình ảnh

import requests # to get image from the web
import shutil # to save it locally
image_url = "//cdn.pixabay.com/photo/2020/02/06/09/39/summer-4823612_960_720.jpg"

Chúng tôi sử dụng ký hiệu lát cắt để tách tên tệp khỏi liên kết hình ảnh. Chúng tôi chia URL hình ảnh bằng cách sử dụng dấu gạch chéo [

import requests
import shutil

img_url = '//file-examples.com/storage/fefbfe84f862d721699d168/2017/10/file_example_PNG_500kB.png'
path = 'download1.png'
response = requests.get[img_url, stream=True]
with open['img.png', 'wb'] as out_file:
    shutil.copyfileobj[response.raw, out_file]
del response
2] và sau đó sử dụng
import requests
import shutil

img_url = '//file-examples.com/storage/fefbfe84f862d721699d168/2017/10/file_example_PNG_500kB.png'
path = 'download1.png'
response = requests.get[img_url, stream=True]
with open['img.png', 'wb'] as out_file:
    shutil.copyfileobj[response.raw, out_file]
del response
3 để cắt đoạn cuối cùng

________số 8

Phương thức

import requests
import shutil

img_url = '//file-examples.com/storage/fefbfe84f862d721699d168/2017/10/file_example_PNG_500kB.png'
path = 'download1.png'
response = requests.get[img_url, stream=True]
with open['img.png', 'wb'] as out_file:
    shutil.copyfileobj[response.raw, out_file]
del response
4 từ mô-đun yêu cầu sẽ được sử dụng để truy xuất hình ảnh

r = requests.get[image_url, stream = True]

Sử dụng

import requests
import shutil

img_url = '//file-examples.com/storage/fefbfe84f862d721699d168/2017/10/file_example_PNG_500kB.png'
path = 'download1.png'
response = requests.get[img_url, stream=True]
with open['img.png', 'wb'] as out_file:
    shutil.copyfileobj[response.raw, out_file]
del response
5 để đảm bảo không bị gián đoạn

Bây giờ, chúng tôi sẽ tạo tệp cục bộ ở chế độ ghi nhị phân và sử dụng phương pháp

//cdn.pixabay.com/photo/2020/02/06/09/39/summer-4823612_960_720.jpg
0 để ghi hình ảnh của chúng tôi vào tệp

import requests
import shutil

img_url = '//file-examples.com/storage/fefbfe84f862d721699d168/2017/10/file_example_PNG_500kB.png'
path = 'download1.png'
response = requests.get[img_url, stream=True]
with open['img.png', 'wb'] as out_file:
    shutil.copyfileobj[response.raw, out_file]
del response
1

Chúng tôi cũng có thể thêm một số điều kiện nhất định để kiểm tra xem hình ảnh đã được truy xuất thành công hay chưa bằng cách sử dụng Mã trạng thái của Yêu cầu

Chúng tôi cũng có thể cải thiện hơn nữa bằng cách thêm các thanh tiến trình trong khi tải xuống các tệp lớn hoặc một số lượng lớn tệp. đây là một ví dụ tốt

Yêu cầu là phương pháp được đề xuất và ổn định nhất để tải xuống bất kỳ loại tệp nào bằng Python

Mô-đun Wget

Ngoài mô-đun yêu cầu python, chúng tôi cũng có thể sử dụng để tải xuống

Đây là con trăn tương đương với GNU wget

Nó khá đơn giản để sử dụng

Nguồn. Tác giả

Mô-đun urllib

Thư viện Python tiêu chuẩn để truy cập các trang web thông qua chương trình của bạn là urllib. Nó cũng được sử dụng bởi mô-đun yêu cầu

Thông qua urllib, chúng ta có thể làm nhiều việc khác nhau. truy cập trang web, tải xuống dữ liệu, phân tích dữ liệu, gửi yêu cầu GET và POST

Chúng tôi có thể tải xuống hình ảnh của mình chỉ bằng một vài dòng mã

Chúng tôi đã sử dụng phương pháp sao chép tài nguyên web cần thiết vào một tệp cục bộ

Điều quan trọng cần lưu ý là trên một số hệ thống và nhiều trang web, đoạn mã trên sẽ dẫn đến lỗi. Lỗi HTTP. Lỗi HTTP 403. Cấm

Điều này là do rất nhiều trang web không đánh giá cao các chương trình ngẫu nhiên truy cập dữ liệu của họ. Một số chương trình có thể tấn công máy chủ bằng cách gửi một số lượng lớn yêu cầu. Điều này ngăn máy chủ hoạt động

Đây là lý do tại sao các trang web này có thể

  1. Chặn bạn và bạn sẽ nhận được Lỗi HTTP 403
  2. Gửi cho bạn dữ liệu khác hoặc NULL

Chúng tôi có thể khắc phục điều này bằng cách sửa đổi tác nhân người dùng, một biến được gửi cùng với yêu cầu của chúng tôi. Theo mặc định, biến này cho trang web biết rằng khách truy cập là một chương trình python

Bằng cách sửa đổi biến này, chúng tôi có thể hành động như thể trang web đang được truy cập trên một trình duyệt web tiêu chuẩn bởi một người dùng bình thường

Bạn có thể đọc thêm về nó ở đây

Phần kết luận

Yêu cầu đã trở thành cách thực tế để tải xuống mọi thứ trong Python

Ngay cả trang tài liệu urllib cũng khuyến nghị Yêu cầu giao diện máy khách HTTP cấp cao hơn

Nếu bạn muốn có ít phụ thuộc hơn trong chương trình của mình, bạn nên truy cập urllib. Nó là một phần của các thư viện tiêu chuẩn. Vì vậy, không cần phải tải xuống

Làm cách nào để cài đặt hình ảnh PIL trong Python?

PIL là tên viết tắt của Python Imaging Library và nó bổ sung tính năng xử lý ảnh cho Python. .
xcode-select -install [Bạn sẽ được nhắc cài đặt Công cụ dòng lệnh Xcode]
sudo easy_install pip
sudo pip cài đặt gối
gối cài đặt pip

Làm cách nào để lưu hình ảnh trong Python?

Lưu hình ảnh trong Python cũng đơn giản như vậy. Bạn chỉ cần gọi lệnh save[] và nhập tên bạn muốn sử dụng để lưu hình ảnh của mình . Phương pháp này sẽ lưu hình ảnh ở định dạng được xác định bởi phần mở rộng trên tên tệp bạn nhập.

Làm cách nào để lấy hình ảnh từ API trong Python?

Trong bài viết này, chúng ta sẽ tìm hiểu Cách mở hình ảnh từ URL bằng mô-đun PIL trong python. .
Sao chép URL của bất kỳ hình ảnh nào
Viết URL với tên tệp trong urllib. yêu cầu. phương thức urlretrieve[]
Sử dụng hình ảnh. phương thức open[] để mở hình ảnh
Cuối cùng, hiển thị hình ảnh bằng obj. phương thức hiển thị []

PIL có hoạt động với JPG không?

PIL là thư viện miễn phí bổ sung khả năng xử lý hình ảnh cho trình thông dịch Python của bạn, hỗ trợ nhiều định dạng tệp hình ảnh như PPM, PNG, JPEG, GIF, TIFF và BMP< . .

Chủ Đề