Nhận tất cả hình ảnh từ trang web python

Làm việc với hình ảnh trong Python cung cấp cho bạn nhiều khả năng phát triển, từ tải xuống hình ảnh bằng URL đến truy xuất thuộc tính ảnh. Nhưng, chính xác thì làm cách nào để bạn có thể truy cập những bức ảnh này ngay từ đầu?

Trong bài viết này, bạn sẽ tìm hiểu một số phương pháp khác nhau được sử dụng để tải xuống hình ảnh trong Python

điều kiện tiên quyết

Để hưởng lợi đầy đủ từ bài đăng này, bạn nên có những điều sau đây

✅ Một số kinh nghiệm với Python 2 hoặc Python 3 🐍

✅ Python 3 được cài đặt trên máy cục bộ của bạn. Có một tập lệnh tương thích với Python 2 trong phần Gói Urllib

Sử dụng Python để tải xuống và lưu hình ảnh từ URL

 

Sử dụng Gói yêu cầu

Là ứng dụng khách HTTP phổ biến nhất trong Python, gói Yêu cầu thanh lịch và dễ sử dụng cho người mới bắt đầu. Nhiều nhà phát triển coi đây là một phương pháp thuận tiện để tải xuống bất kỳ loại tệp nào trong Python

Giả sử bạn đã cài đặt Python 3 vào môi trường cục bộ của mình, hãy tạo một thư mục

file_name = input('Save image as (string):') #prompt user for file name
2 và thêm vào một
file_name = input('Save image as (string):') #prompt user for file name
3. Khi tệp đó được mở, hãy cài đặt và nhập các gói sau

import requests # request img from web
import shutil # save img locally

Khi bạn đã nhập các tệp đó, hãy tạo biến

file_name = input('Save image as (string):') #prompt user for file name
4 được đặt thành câu lệnh
file_name = input('Save image as (string):') #prompt user for file name
5 yêu cầu URL hình ảnh

url = input('Please enter an image URL (string):') #prompt user for img url

Ngoài ra, hãy tạo một biến khác cũng được đặt thành một câu lệnh đầu vào,

file_name = input('Save image as (string):') #prompt user for file name
6

file_name = input('Save image as (string):') #prompt user for file name

Trong dòng mã tiếp theo, triển khai phương thức

file_name = input('Save image as (string):') #prompt user for file name
7 từ mô-đun yêu cầu để truy xuất hình ảnh. Phương thức sẽ nhận hai tham số, biến
file_name = input('Save image as (string):') #prompt user for file name
4 mà bạn đã tạo trước đó và
file_name = input('Save image as (string):') #prompt user for file name
9 bằng cách thêm đối số thứ hai này để đảm bảo không có sự gián đoạn nào xảy ra khi phương thức đang chạy

file_name = input('Save image as (string):') #prompt user for file name
1

Phương pháp

file_name = input('Save image as (string):') #prompt user for file name
10 để ghi hình ảnh của bạn dưới dạng tên tệp, xây dựng tệp cục bộ ở chế độ ghi nhị phân và lưu cục bộ bằng
file_name = input('Save image as (string):') #prompt user for file name
11. Mặc dù không cần thiết nhưng bạn nên 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 trong một câu lệnh có điều kiện

file_name = input('Save image as (string):') #prompt user for file name
4

Kịch bản hoàn thành của bạn sẽ trông giống như thế này

file_name = input('Save image as (string):') #prompt user for file name
5

Thực thi tập lệnh của bạn bằng cách chạy lệnh sau trong thiết bị đầu cuối của bạn

file_name = input('Save image as (string):') #prompt user for file name
6

Hình ảnh đã tải xuống của bạn sẽ lưu vào thư mục

file_name = input('Save image as (string):') #prompt user for file name
12 mới được tạo. Xin chúc mừng, giờ đây bạn có thể yêu cầu tải xuống tất cả hình ảnh mà trái tim bạn mong muốn 💖

Tải xuống hình ảnh bằng urllib

Một phương pháp ưa thích khác để tải xuống dữ liệu trong Python là thông qua

file_name = input('Save image as (string):') #prompt user for file name
13, một gói thu thập một số mô-đun để làm việc với các URL, bao gồm

  • urllib. yêu cầu mở và đọc

  • urllib. phân tích cú pháp để phân tích cú pháp URL

  • urllib. lỗi đối với bất kỳ trường hợp ngoại lệ nào được đưa ra bởi urllib. lời yêu cầu

  • urllib. robotparser để phân tích cú pháp robot. tập tin txt

Để tìm hiểu thêm về mô-đun

file_name = input('Save image as (string):') #prompt user for file name
13, hãy tham khảo lại tài liệu tại đây, nhưng bây giờ bạn đã biết những điều cơ bản, đã đến lúc bắt đầu

Nếu

file_name = input('Save image as (string):') #prompt user for file name
13 không có trong môi trường hiện tại của bạn, hãy cài đặt nó bằng cách thực thi mã bên dưới

import requests # request img from web
import shutil # save img locally
1

Lưu ý rằng nếu bạn đang sử dụng Python 2, thật không may, mã này sẽ không hoạt động với môi trường của bạn, nhưng phần cuối của phần này bao gồm một tập lệnh tương thích với Python 2

Khi bạn đã cài đặt

file_name = input('Save image as (string):') #prompt user for file name
13, hãy tạo một thư mục mới cho dự án của bạn,
file_name = input('Save image as (string):') #prompt user for file name
17. Bước này không cần lặp lại nếu bạn đã tạo ở phần trước. Trong thư mục đó, hãy tạo một thư mục hình ảnh, cũng như tệp
file_name = input('Save image as (string):') #prompt user for file name
18. Điều hướng đến tệp
file_name = input('Save image as (string):') #prompt user for file name
18 của bạn và ở trên cùng, hãy chèn dòng mã sau để nhập gói
file_name = input('Save image as (string):') #prompt user for file name
13

import requests # request img from web
import shutil # save img locally
7

Với mô-đun của bạn đã được nhập, nhiệm vụ của bạn là tạo một tập lệnh thân thiện với người dùng cho phép bạn tải xuống hình ảnh một cách nhanh chóng và có tổ chức. Đầu tiên, tạo một biến

file_name = input('Save image as (string):') #prompt user for file name
4 từ một hàm đầu vào

import requests # request img from web
import shutil # save img locally
9

Sau đó, quyết định bạn muốn tệp hình ảnh của mình lưu dưới dạng nào, sử dụng một câu lệnh nhập khác

url = input('Please enter an image URL (string):') #prompt user for img url
0

Với hai biến chứa dữ liệu cần thiết để tải xuống và sắp xếp các tệp hình ảnh mới tạo của bạn, hãy viết mã lưu (các) hình ảnh. Bắt đầu bằng cách xác định một hàm nhận ba tham số, biến

file_name = input('Save image as (string):') #prompt user for file name
4 của bạn,
file_name = input('Save image as (string):') #prompt user for file name
43 được chỉ định mà bạn muốn lưu hình ảnh vào và
file_name = input('Save image as (string):') #prompt user for file name
6 đã đặt trước đó

url = input('Please enter an image URL (string):') #prompt user for img url
1

Bên trong chức năng tạo một

file_name = input('Save image as (string):') #prompt user for file name
45 đến nơi hình ảnh sẽ được lưu vào. Đường dẫn đầy đủ của hình ảnh sẽ là
file_name = input('Save image as (string):') #prompt user for file name
43 với
file_name = input('Save image as (string):') #prompt user for file name
6 được nối và một chuỗi
file_name = input('Save image as (string):') #prompt user for file name
48 được thêm vào cuối. *Tương tự, nếu bạn muốn lưu hình ảnh của mình dưới dạng PNG, bạn sẽ sử dụng
file_name = input('Save image as (string):') #prompt user for file name
49

url = input('Please enter an image URL (string):') #prompt user for img url
2

Để tạo mã thực sự tải xuống hình ảnh, bạn cần tích hợp

file_name = input('Save image as (string):') #prompt user for file name
50 và
file_name = input('Save image as (string):') #prompt user for file name
51 để tự động tải xuống và lưu hình ảnh dựa trên các đối số đã cho, ✨rất may là bạn vừa tạo ra chúng. ✨

url = input('Please enter an image URL (string):') #prompt user for img url
3

Gọi chức năng đó ở cuối tập lệnh của bạn tương tự như thế này

url = input('Please enter an image URL (string):') #prompt user for img url
4

Khi bạn gọi

file_name = input('Save image as (string):') #prompt user for file name
52, bạn sẽ cần phải chuyển qua ba đối số một lần nữa, lần này sẽ là
file_name = input('Save image as (string):') #prompt user for file name
4 của bạn, đường dẫn tệp là thư mục
file_name = input('Save image as (string):') #prompt user for file name
54 bạn đã tạo lúc đầu và tên_tệp bạn đã chọn

Tin hay không, đó là nó. Miễn là bạn đang ở trong thư mục

file_name = input('Save image as (string):') #prompt user for file name
55 của mình, hãy chạy tập lệnh của bạn trong thiết bị đầu cuối với mã bên dưới

url = input('Please enter an image URL (string):') #prompt user for img url
5

Bạn đã làm rất tốt. Bạn vừa tải xuống hình ảnh đầu tiên của mình bằng Python bằng gói

file_name = input('Save image as (string):') #prompt user for file name
13 😎

⛔︎ Nếu bạn chưa nâng cấp Python 3, bạn có thể thấy mình gặp một số lỗi liên quan đến

file_name = input('Save image as (string):') #prompt user for file name
50, đoạn mã sau phải tương thích với Python 2

url = input('Please enter an image URL (string):') #prompt user for img url
6

*Không giống như Python 3, phiên bản 2 không hỗ trợ gói

file_name = input('Save image as (string):') #prompt user for file name
50. Thay vào đó, bạn có thể nhập

urllib2 và sử dụng

file_name = input('Save image as (string):') #prompt user for file name
59 để đọc url hình ảnh, sau đó tải xuống môi trường cục bộ của bạn. Tuy nhiên, hình ảnh bây giờ sẽ được lưu trực tiếp vào thư mục
file_name = input('Save image as (string):') #prompt user for file name
55 thay vì thư mục
file_name = input('Save image as (string):') #prompt user for file name
61. *

Sử dụng mô-đun Wget

Ngoài các gói

file_name = input('Save image as (string):') #prompt user for file name
62 và
file_name = input('Save image as (string):') #prompt user for file name
63, bạn cũng có thể tải xuống hình ảnh bằng Python bằng cách sử dụng mô-đun wget. Nếu bạn đã thực hiện điều hướng bên trong
file_name = input('Save image as (string):') #prompt user for file name
64 của mình, nếu chưa hãy tạo nó ngay bây giờ. Trong thư mục, tạo tệp
file_name = input('Save image as (string):') #prompt user for file name
65 và nhập mô-đun
file_name = input('Save image as (string):') #prompt user for file name
66 như vậy

url = input('Please enter an image URL (string):') #prompt user for img url
7

Khi bạn đã cài đặt và nhập wget, hãy đặt biến

file_name = input('Save image as (string):') #prompt user for file name
4 bằng câu lệnh đầu vào gán địa chỉ hình ảnh

import requests # request img from web
import shutil # save img locally
9

Sử dụng biến

file_name = input('Save image as (string):') #prompt user for file name
68 trong biến
file_name = input('Save image as (string):') #prompt user for file name
4 làm đối số và đặt nó bằng biến
file_name = input('Save image as (string):') #prompt user for file name
6, bạn sẽ có thể truy cập nó sau đó

url = input('Please enter an image URL (string):') #prompt user for img url
9

Kịch bản đầy đủ sẽ giống như thế này

file_name = input('Save image as (string):') #prompt user for file name
0

Đó là tất cả. Bạn có thể chạy tập lệnh của mình 🏃

file_name = input('Save image as (string):') #prompt user for file name
1

Chúng tôi cũng đã viết một bài viết về cách sử dụng Python với wget , đó là một cách tuyệt vời khác để sử dụng wget với Python

Sự kết luận

Như mọi khi, mỗi phương pháp này đều có ưu và nhược điểm. Nếu bạn gặp sự cố khi cài đặt gói Yêu cầu hoặc muốn ít phụ thuộc hơn trong urllib chương trình của mình thì đây có thể là lựa chọn tốt nhất của bạn. Tuy nhiên, mô-đun Yêu cầu đã trở thành một cách phổ biến và đáng tin cậy để tải xuống bất kỳ thứ gì trong Python, thậm chí tài liệu urllib cũng đề xuất nó là giao diện máy khách HTTP cấp cao

Nếu bạn đang tìm kiếm nhiều cách hơn nữa để tải xuống hình ảnh và loại tệp từ web bằng Python, thì tôi khuyên bạn nên xem bài đăng, Ứng dụng khách HTTP Python tốt nhất cho năm 2021

Tôi hy vọng bạn tìm thấy bài viết này thú vị. Bạn cũng có thể truy cập mã nguồn tại đây. Chúc mừng cạo. 🐝

Tài nguyên bổ sung

  • Gói yêu cầu
  • mô-đun urllib
  • quên mô-đun
  • Các máy khách HTTP Python tốt nhất cho năm 2021

Nhận tất cả hình ảnh từ trang web python

Maxine Meurer

Maxine là một kỹ sư phần mềm và là một nhà văn đam mê kỹ thuật, cô thích dành thời gian rảnh của mình để kết hợp kiến ​​thức về công nghệ môi trường của mình vào việc phát triển web.