Làm cách nào để bạn tải xuống tất cả hình ảnh từ một trang web trong python giải thích các bước?

Downloading all images from a website can be done by downloading all of the websites, or crawling all of the websites and extracting all of the “

Làm cách nào để bạn tải xuống tất cả hình ảnh từ một trang web trong python giải thích các bước?
Làm cách nào để bạn tải xuống tất cả hình ảnh từ một trang web trong python giải thích các bước?
Ví dụ về kết quả tải xuống và tối ưu hóa hình ảnh với Python

Cách trích xuất tất cả các URL hình ảnh bằng Screaming Frog SEO Crawler

Để trích xuất tất cả các URL hình ảnh từ một trang web, có thể sử dụng Trình thu thập dữ liệu SEO. Trong ví dụ này, với việc thu thập dữ liệu SEO cơ bản, tôi sẽ chỉ cho bạn cách thực hiện với Screaming Frog

Làm cách nào để bạn tải xuống tất cả hình ảnh từ một trang web trong python giải thích các bước?
Làm cách nào để bạn tải xuống tất cả hình ảnh từ một trang web trong python giải thích các bước?
Trích xuất URL hình ảnh bằng Screaming Frog

Để trích xuất hình ảnh với Screaming Frog

  • Hoàn thành một cuộc thu thập thông tin với Screaming Frog
  • Chọn Phần Hình ảnh từ menu Thu thập Dữ liệu ở bên phải
  • Nhấp vào nút xuất
  • Xác định tên tệp đầu ra và đường dẫn đích

Làm cách nào để bạn tải xuống tất cả hình ảnh từ một trang web trong python giải thích các bước?
Làm cách nào để bạn tải xuống tất cả hình ảnh từ một trang web trong python giải thích các bước?
Trích xuất URL hình ảnh với Screaming Frog

Vì Screaming Frog là một trong những Trình thu thập dữ liệu SEO phổ biến nên tôi trích xuất hình ảnh bằng nó. Tuy nhiên, Google Sheets, JetOctopus, OnCrawl, Greenflare cũng có thể được sử dụng cho mục đích tương tự

Làm cách nào để biến tệp xuất URL hình ảnh con ếch la hét thành phiên bản có thể đọc được bằng Python?

Nếu bạn cố gắng đọc trực tiếp đầu ra của Screaming Frog bằng thư viện Pandas của Python, bạn sẽ không thể làm điều đó. Bạn có thể xem một ví dụ dưới đây

import pandas as pd
df = pd.read_excel("ımages_all.xlsx")
df

OUTPUT>>>

Address

Bạn có thể thấy đầu ra dưới đây

Làm cách nào để bạn tải xuống tất cả hình ảnh từ một trang web trong python giải thích các bước?
Làm cách nào để bạn tải xuống tất cả hình ảnh từ một trang web trong python giải thích các bước?
Đọc đầu ra của Screaming Frog bằng Python

“Openpyxl” là một thư viện Python có thể được sử dụng để đọc các tệp “xlsx”. Và, Để biến đầu ra Screaming Frog thành phiên bản có thể đọc được, chúng ta sẽ cần sử dụng “openpyxl” như bên dưới

import openpyxl
wb = openpyxl.load_workbook('ımages_all.xlsx')
sheet = wb.worksheets[0]
df = pd.DataFrame(sheet.values)
df

Bạn có thể xem phần giải thích của khối mã bên trên, bên dưới

  • Chúng tôi đã tạo một biến là “wb”
  • Chúng tôi đã sử dụng “openpyxl. phương thức load_workbook()” để tải tệp xlsx của chúng ta vào biến “wb”
  • Chúng tôi đã chọn trang tính đầu tiên bao gồm các URL hình ảnh của chúng tôi
  • Chúng tôi đã tạo một khung dữ liệu từ các giá trị của trang tính đã chọn với lệnh “pd. Phương thức DataFrame()”
  • Chúng tôi đã gọi khung dữ liệu của chúng tôi

Bạn có thể thấy đầu ra dưới đây

Làm cách nào để bạn tải xuống tất cả hình ảnh từ một trang web trong python giải thích các bước?
Làm cách nào để bạn tải xuống tất cả hình ảnh từ một trang web trong python giải thích các bước?
Trích xuất URL hình ảnh con ếch la hét và biến nó thành một cách có thể đọc được bằng Python

Chúng tôi có 13552 URL hình ảnh trong khung dữ liệu của mình với thông tin về kích thước, khả năng lập chỉ mục và loại của chúng

Cách trích xuất tất cả các URL hình ảnh bằng Advertools

Để trích xuất tất cả các URL hình ảnh từ một trang web bằng Python, có thể sử dụng các thư viện và mô-đun quét web. Trong ví dụ này, chúng tôi sẽ sử dụng chức năng “crawl()” của Advertools để lấy tất cả các URL hình ảnh có liên quan mà chúng tôi cần. Dưới đây, bạn có thể xem phương pháp trích xuất tất cả hình ảnh từ một trang web bằng Python Package Advertools

import advertools as adv
adv.crawl("https://www.diyetkolik.com/, "diyetkolik.jl", follow_links=True")

Mã ở trên là cần thiết để thu thập dữ liệu trang web ví dụ của chúng tôi là “diyetkolik. com” với Advertools. Về cơ bản, chúng tôi nói rằng hãy thu thập dữ liệu mọi trang web, theo dõi tất cả các liên kết nội bộ và đưa đầu ra tới “diyetkolik. tập tin jl”. Để đọc một tệp có phần mở rộng “jl” bằng Python, bạn cần sử dụng “pd. read_json()” với thuộc tính và cặp giá trị “lines=True”

df = pd.read_json("diyetkolik.jl", lines=True)
df.info()

Bạn có thể thấy đầu ra dưới đây

Làm cách nào để bạn tải xuống tất cả hình ảnh từ một trang web trong python giải thích các bước?
Làm cách nào để bạn tải xuống tất cả hình ảnh từ một trang web trong python giải thích các bước?
Đầu ra thu thập thông tin trang web Python (Advertools)

Chúng tôi có một khung dữ liệu lớn hơn 4. 5 MB và chúng tôi có 45 cột với các loại dữ liệu khác nhau. Dưới đây, bạn có thể xem cách kiểm tra xem chúng tôi đã trích xuất bao nhiêu URL hình ảnh bằng Python. Trước tiên, bạn cần lọc các cột có chuỗi “img” trong tên của chúng

for i in df.columns.values:
    if i.__contains__("img") == True:
        print(i)

OUTPUT>>>

img_src
img_alt

Giải thích về khối mã bên dưới

  • Chúng tôi đã tạo một vòng lặp for với "các cột của khung dữ liệu đầu ra thu thập thông tin"
  • Chúng tôi đã kiểm tra từng cột để xem chúng có bao gồm chuỗi “img” trong tên của chúng hay không

Bạn có thể thấy đầu ra dưới đây

Làm cách nào để bạn tải xuống tất cả hình ảnh từ một trang web trong python giải thích các bước?
Làm cách nào để bạn tải xuống tất cả hình ảnh từ một trang web trong python giải thích các bước?
Lọc các cột bằng chức năng ma thuật “__contains__”. Bạn cũng có thể sử dụng “str. phương thức bộ lọc (regex, axis)”

Chúng tôi có hai cột với chuỗi “img”, một cột là “img_src” cho các URL hình ảnh và một cho “img_alt” dành cho các thẻ alt hình ảnh của hình ảnh. Bạn cần mở rộng chiều rộng cột tối đa bằng phương thức “set_option()” của Pandas như bên dưới

pd.set_option("display.max_colwidth",255)

Chúng tôi đã mở rộng độ dài cột tối đa vì chúng tôi muốn xem tất cả các giá trị của hàng là URL hình ảnh mà chúng tôi đã trích xuất bằng Advertools. Dưới đây, bạn sẽ thấy tất cả các URL hình ảnh duy nhất mà chúng tôi đã trích xuất

df["img_src"].str.split("@@").explode()

Giải thích về khối mã bên dưới

  • Chọn cột “img_src”
  • Sử dụng phương thức “str” để sử dụng phương thức tách trên mỗi hàng
  • Tách các giá trị của mỗi hàng bằng “@@”, đây là quy ước để tách các giá trị tương tự
  • Sử dụng phương thức “explode()” để tạo các giá trị dạng danh sách trong mỗi hàng với các giá trị được phân tách

Bạn có thể thấy đầu ra dưới đây

Làm cách nào để bạn tải xuống tất cả hình ảnh từ một trang web trong python giải thích các bước?
Làm cách nào để bạn tải xuống tất cả hình ảnh từ một trang web trong python giải thích các bước?
Nhận tất cả các URL hình ảnh bằng Python

Chúng tôi thấy rằng chúng tôi có 13239 URL hình ảnh. Nó gần bằng 13552, là số lượng URL hình ảnh mà chúng tôi đã trích xuất bằng Screaming Frog. Sự khác biệt là do tôi đã thực hiện hai lần thu thập thông tin này vào các thời điểm khác nhau. Và, một điều quan trọng khác là chỉ nhận các URL hình ảnh “duy nhất”

len(df["img_src"].str.split("@@").explode().unique())

OUTPUT>>>
9419

Với phương thức “len()” và “unique()”, chúng ta đã lấy tất cả các URL hình ảnh duy nhất và độ dài của mảng mới là 9419. Điều đó có nghĩa là chúng tôi có 9419 URL hình ảnh tương đối duy nhất

Có một vấn đề khác ở đây, Advertools đã trích xuất các URL tương đối, nhưng để trích xuất URL hình ảnh và tải xuống hình ảnh hàng loạt, bạn sẽ cần các URL tuyệt đối. Vì vậy, bạn sẽ cần sử dụng “urlparse. urljoin” như bên dưới

________số 8

Bạn có thể xem phần giải thích của khối mã bên trên, bên dưới

  • Trong dòng đầu tiên, chúng tôi đã nhập “urljoin” từ “urlparse”
  • Ở dòng thứ hai, chúng ta đã tạo một danh sách mới là “image_urls”. Chúng tôi đã chỉ định các URL hình ảnh duy nhất của mình cho biến này
  • Trong dòng thứ ba, chúng tôi đã tạo một danh sách trống
  • Ở dòng thứ tư, chúng ta đã bắt đầu vòng lặp for với biến “image_urls”
  • Trong dòng thứ năm, chúng tôi đã tạo các URL tuyệt đối của mình bằng phương thức “urljoin” và nối chúng vào “image_urls”
  • Trong dòng thứ sáu, chúng tôi đã tạo biến “url_df” và gán một khung dữ liệu mới cho nó được tạo bởi danh sách “c”
  • Trong dòng thứ bảy, chúng tôi đã gọi khung dữ liệu mới bao gồm các URL hình ảnh tuyệt đối

Bạn có thể thấy đầu ra bao gồm tất cả các URL hình ảnh tuyệt đối

Làm cách nào để bạn tải xuống tất cả hình ảnh từ một trang web trong python giải thích các bước?
Làm cách nào để bạn tải xuống tất cả hình ảnh từ một trang web trong python giải thích các bước?
URL hình ảnh tuyệt đối trong một khung dữ liệu

Như bạn có thể thấy, tất cả các URL đều có đường dẫn tuyệt đối

Làm cách nào để kiểm tra đường dẫn URL hình ảnh và phân loại chúng trước khi tải xuống?

Trong khi tải xuống tất cả hình ảnh từ một trang web để tối ưu hóa chúng, việc không thay đổi URL của hình ảnh là rất quan trọng để nhà phát triển có thể sử dụng cùng các tệp hình ảnh và đường dẫn URL. Do đó, nếu bạn tải và tối ưu tất cả các ảnh trong cùng một thư mục, chúng sẽ bị trộn lẫn và một lần nữa sẽ khó lọc chúng. Vì tình huống này, bạn nên phân loại các tệp hình ảnh theo cấu trúc tệp của chúng, sau đó bạn nên tải chúng xuống

Để kiểm tra cấu trúc URL của tệp hình ảnh, chúng ta sẽ sử dụng chức năng “url_to_df()” của Advertools như bên dưới

Ví dụ phân tích cú pháp URL với Python và Advertools

Trong đầu ra “url_to_df()”, chúng ta có “scheme”, “netloc”, “path” và “dir_1”, “dir_2”, v.v. cột chứa các phần có liên quan của URL. Để xem danh mục nào có nhiều URL nhất, chúng tôi sẽ cần sử dụng “value_counts()” trên cột “dir_1” như bên dưới

adv.url_to_df(url_df["image_urls"])["dir_1"].value_counts()

Bạn có thể thấy đầu ra bên dưới

Làm cách nào để bạn tải xuống tất cả hình ảnh từ một trang web trong python giải thích các bước?
Làm cách nào để bạn tải xuống tất cả hình ảnh từ một trang web trong python giải thích các bước?
Đường dẫn URL hình ảnh

Chúng tôi thấy rằng hầu hết các hình ảnh đều nằm trong thư mục “site_medie”. Nhưng, nó cũng có thể có các thư mục con. Chúng tôi cần phân loại mọi thư mục và thư mục con trước khi tải xuống hình ảnh

import openpyxl
wb = openpyxl.load_workbook('ımages_all.xlsx')
sheet = wb.worksheets[0]
df = pd.DataFrame(sheet.values)
df
0
  • Chúng tôi đã gán đầu ra của phương thức “url_to_df” cho một biến là “url_df”
  • Chúng tôi đã sử dụng “str. phương thức contains()” với giá trị boolean “True”, để lọc các hàng cần thiết

Bạn có thể thấy đầu ra dưới đây

Làm cách nào để bạn tải xuống tất cả hình ảnh từ một trang web trong python giải thích các bước?
Làm cách nào để bạn tải xuống tất cả hình ảnh từ một trang web trong python giải thích các bước?
Khung dữ liệu từ các URL hình ảnh được phân tích cú pháp

Ghi chú. Để kiểm tra xem một hàng có chứa một chuỗi cụ thể hay không, bạn cũng có thể sử dụng phương pháp bên dưới

import openpyxl
wb = openpyxl.load_workbook('ımages_all.xlsx')
sheet = wb.worksheets[0]
df = pd.DataFrame(sheet.values)
df
1

Nếu bạn nhìn vào phần “dir_1”, nó chỉ có giá trị “site_media”. Và, bên dưới, chúng tôi sẽ kiểm tra giá trị cột “dir_2” của chúng tôi cho thư mục “site_media”

import openpyxl
wb = openpyxl.load_workbook('ımages_all.xlsx')
sheet = wb.worksheets[0]
df = pd.DataFrame(sheet.values)
df
2

Lần này, chúng tôi không có thư mục thứ hai. Điều đó có nghĩa là chúng tôi có thể tải xuống 9071 hình ảnh trong tổng số 9419 hình ảnh từ thư mục con “phương tiện” của chúng tôi và nhóm chúng trong một đường dẫn đầu ra khác

Ý kiến. Tôi cũng đặt câu hỏi về sự cần thiết của thư mục con “phương tiện truyền thông”, vì chúng tôi không có thư mục con thứ hai, tại sao nhà xuất bản nội dung này lại cố gắng tạo các URL hình ảnh dài hơn?

Làm cách nào để kiểm tra thư mục nào có bao nhiêu hình ảnh trong một trang web?

Để xem thư mục nào có bao nhiêu URL hình ảnh trong đó, chúng ta có thể sử dụng “pd. DataFrame” với các phương thức “keys()” và “values()” như bên dưới

import openpyxl
wb = openpyxl.load_workbook('ımages_all.xlsx')
sheet = wb.worksheets[0]
df = pd.DataFrame(sheet.values)
df
3

Trong khối mã này, chúng tôi đã tạo một biến mới là “image_folder_structure”, chúng tôi đã gán một biến mới cho nó trong khi gọi phương thức “value_counts()” cho các giá trị cột “dir_1” với các phương thức “key” và “values”. Bạn có thể xem kết quả bên dưới

Làm cách nào để bạn tải xuống tất cả hình ảnh từ một trang web trong python giải thích các bước?
Làm cách nào để bạn tải xuống tất cả hình ảnh từ một trang web trong python giải thích các bước?
Đường dẫn URL hình ảnh trong khung dữ liệu

Với cách tô màu “background gradient”, chúng ta có thể dễ dàng xem thư mục nào có bao nhiêu hình ảnh trong một khung dữ liệu. Bạn có thể sử dụng phương pháp tương tự cho cả “thư mục con”, nếu bạn muốn

Làm cách nào để tải xuống tất cả hình ảnh từ một trang web bằng Python?

Để tải xuống tất cả hình ảnh từ một trang web theo cách hiệu quả nhất về thời gian, bạn nên sử dụng “yêu cầu” với “concurrent. tương lai”. Dưới đây, bạn sẽ thấy tập lệnh Python cần thiết

import openpyxl
wb = openpyxl.load_workbook('ımages_all.xlsx')
sheet = wb.worksheets[0]
df = pd.DataFrame(sheet.values)
df
4

Giải thích về khối mã bên dưới

  • Tạo một chức năng với lệnh “def”
  • Tách URL hình ảnh để tạo tên tệp hình ảnh
  • Sử dụng các yêu cầu cho URL hình ảnh với cặp giá trị và tham số “stream=True”
  • Mở hình ảnh đã tải xuống dưới dạng "ghi nhị phân" và ghi mọi đoạn của phản hồi hình ảnh vào tệp

Dưới đây, bạn sẽ thấy một ví dụ về tải xuống tệp hình ảnh từ hình ảnh nổi bật của bài viết

import openpyxl
wb = openpyxl.load_workbook('ımages_all.xlsx')
sheet = wb.worksheets[0]
df = pd.DataFrame(sheet.values)
df
5

Dưới đây bạn sẽ xem video hướng dẫn cách tải xuống tệp hình ảnh bằng Python

Tải xuống tệp hình ảnh bằng Python

Làm cách nào để xác định thư mục tải xuống hình ảnh?

Để tải mọi hình ảnh xuống một thư mục cụ thể, chúng ta cần thêm một khối nhỏ vào chức năng “download_image” như bên dưới

import openpyxl
wb = openpyxl.load_workbook('ımages_all.xlsx')
sheet = wb.worksheets[0]
df = pd.DataFrame(sheet.values)
df
6

Chúng tôi đã thêm một đối số thứ hai vào chức năng của mình, đó là "đích", nó hiển thị đích đích để tải xuống hình ảnh của chúng tôi với hoạt động python. Và, trong ngữ cảnh này, chúng tôi đã sử dụng mô-đun “os” của Python với “os. đường dẫn. tham gia()” và “os. phương thức getcwd()”. Dưới đây, bạn sẽ thấy một ví dụ trực tiếp

Chúng tôi đã tải xuống một hình ảnh từ một trang web vào thư mục được nhắm mục tiêu

Làm cách nào để tạo một thư mục được nhắm mục tiêu để tải xuống hình ảnh?

Nếu thư mục được nhắm mục tiêu để tải xuống hình ảnh không tồn tại, bạn có thể sử dụng “os. makedir” với câu lệnh if-else như bên dưới

import openpyxl
wb = openpyxl.load_workbook('ımages_all.xlsx')
sheet = wb.worksheets[0]
df = pd.DataFrame(sheet.values)
df
7

Chúng tôi đã thêm câu lệnh if với “if os. đường dẫn. tồn tại (destination_image”)” có nghĩa là nếu thư mục được nhắm mục tiêu đã tồn tại, hãy tiếp tục và nếu nó không tồn tại, hãy sử dụng “os. mkdir(destination_image)” có nghĩa là tạo thư mục. Dưới đây, bạn sẽ thấy một ví dụ trực tiếp

Chúng tôi đã tạo một thư mục mới cho hình ảnh đã tải xuống của mình trong khi tải xuống

Làm cách nào để tạo thư mục mới cho mọi thư mục hình ảnh của trang web trong khi tải xuống hình ảnh bằng Python?

Như chúng tôi đã trình bày trước đây, chúng tôi có các thư mục hình ảnh khác nhau từ trang web được nhắm mục tiêu của mình. Và, để tải tất cả chúng vào thư mục khác nhau mà không thay đổi URL hình ảnh, điều quan trọng là phải tải chúng trở lại máy chủ với các phiên bản được tối ưu hóa. Để tải hình ảnh xuống các thư mục khác nhau theo đường dẫn URL của chúng, chúng tôi sẽ tạo một chức năng khác và chúng tôi sẽ sử dụng chức năng trước đó làm hàm gọi lại

Dưới đây, bạn sẽ thấy chức năng thứ hai

import openpyxl
wb = openpyxl.load_workbook('ımages_all.xlsx')
sheet = wb.worksheets[0]
df = pd.DataFrame(sheet.values)
df
8

Chúng tôi đã nêu bốn đối số khác nhau cho chức năng “download_images_to_folders()” mới của chúng tôi. Chúng tôi cũng đã nêu các loại dữ liệu của các đối số của chúng tôi. Chúng ta đã sử dụng một vòng lặp for lồng nhau trong hàm mới của mình trong khi gọi hàm trước đó ở cuối khối mã. Về cơ bản, nó kiểm tra từng hàng trong cột “url” trong khi tải xuống từng hình ảnh một. Để kiểm tra chức năng này, tôi đã giới hạn số lượng hàng ở mức “10” với “[. 10]” bổ trợ. Dưới đây, bạn sẽ thấy một ví dụ trực tiếp

Chúng tôi đang tạo các thư mục mới với các đường dẫn hình ảnh trong khi tải xuống để phân loại các hình ảnh đã tải xuống

Làm cách nào để sử dụng tương lai đồng thời trong khi tải xuống hình ảnh bằng Python?

Để tải xuống hình ảnh trong một khoảng thời gian ngắn hơn, chúng tôi sẽ cần sử dụng “concurrent. tương lai”. Bằng cách này, chúng tôi có thể thực hiện nhiều yêu cầu hơn mỗi giây. Dưới đây, bạn sẽ thấy một ví dụ đơn giản để sử dụng “concurrent. futures” trong khi tải hình ảnh xuống

import openpyxl
wb = openpyxl.load_workbook('ımages_all.xlsx')
sheet = wb.worksheets[0]
df = pd.DataFrame(sheet.values)
df
9

Dưới đây, bạn sẽ thấy một ví dụ trực tiếp trong khi thực hiện tập lệnh Python này

Như bạn có thể thấy, hình ảnh đang được tải xuống đột ngột và nhanh hơn rất nhiều

Làm cách nào để tải xuống tất cả hình ảnh theo tiện ích mở rộng của chúng?

Để tải xuống hình ảnh theo tiện ích mở rộng của chúng, URL của hình ảnh phải được lọc theo mẫu kết thúc của chúng. Chẳng hạn, trong một khung dữ liệu bao gồm các URL hình ảnh, bạn có thể sử dụng “pandas. Khung dữ liệu. str. kết thúc bằng(“image_extension”)”. Bạn có thể xem một ví dụ dưới đây

import advertools as adv
adv.crawl("https://www.diyetkolik.com/, "diyetkolik.jl", follow_links=True")
0

Với “đường. kết thúc bằng(“. jpg"). value_counts()”, chúng tôi đã kiểm tra xem có bao nhiêu hình ảnh của chúng tôi kết thúc bằng “. phần mở rộng jpg”. Nếu muốn, chúng ta có thể lọc chúng bằng Pandas

import advertools as adv
adv.crawl("https://www.diyetkolik.com/, "diyetkolik.jl", follow_links=True")
1

Bạn có thể thấy kết quả bên dưới

Làm cách nào để bạn tải xuống tất cả hình ảnh từ một trang web trong python giải thích các bước?
Làm cách nào để bạn tải xuống tất cả hình ảnh từ một trang web trong python giải thích các bước?
URL hình ảnh được lọc theo phần mở rộng hình ảnh của chúng

Dưới đây, bạn có thể xem cách so sánh số lượng hình ảnh theo tiện ích mở rộng của chúng

import advertools as adv
adv.crawl("https://www.diyetkolik.com/, "diyetkolik.jl", follow_links=True")
2

Chúng tôi thấy rằng hầu hết các hình ảnh đều ở định dạng JPG. Ngoài ra, chúng tôi có hình ảnh định dạng “png” gần 1000

Làm cách nào để bạn tải xuống tất cả hình ảnh từ một trang web trong python giải thích các bước?
Làm cách nào để bạn tải xuống tất cả hình ảnh từ một trang web trong python giải thích các bước?
Mẫu URL hình ảnh

Để tải xuống các hình ảnh theo phần mở rộng của chúng, bạn nên sử dụng các phương pháp lọc này và chuyển nó đến “đồng thời. tương lai. ThreadPoolExecutor. map()” như một tham số có thể lặp lại. Một ví dụ dưới đây

import advertools as adv
adv.crawl("https://www.diyetkolik.com/, "diyetkolik.jl", follow_links=True")
3

Ngoài ra, việc phân loại hình ảnh theo phần mở rộng của chúng trong khi tải xuống có thể hữu ích, đặc biệt là sau giai đoạn tối ưu hóa và nén để xem phần mở rộng nào có thể được nén nhiều hơn

Làm cách nào để nén, tối ưu hóa và thay đổi kích thước tất cả hình ảnh từ một trang web bằng Python?

Để tối ưu hóa hình ảnh bằng Python, có thể sử dụng một số Mô-đun, Gói và Thư viện Python. Tôi thường thích Thư viện PILLOW của Python hơn

import advertools as adv
adv.crawl("https://www.diyetkolik.com/, "diyetkolik.jl", follow_links=True")
4

Ở đoạn mã trên, chúng tôi đã tạo một chức năng mới để tối ưu hóa hình ảnh với sự trợ giúp của thư viện “PIL” của Python. Về cơ bản, nó tạo một thư mục mới được “nén” và thay đổi thư mục hiện tại cho thiết bị đầu cuối và lệnh gọi hàm. Sau đó, nó sẽ mở mọi tệp hình ảnh trong thư mục kết thúc bằng “jpg”, “jpeg” và “png”. Nó thay đổi kích thước chúng thành “600×400” và sau đó tối ưu hóa chúng trong khi giảm pixel của chúng. Chúng tôi đã gọi chức năng của mình bằng “ThreadPoolExecutor” để có tốc độ tốt hơn sau khi hoàn thành nó

Nếu muốn tìm hiểu thêm về Tối ưu hóa và Thay đổi kích thước hình ảnh, bạn có thể đọc hướng dẫn bên dưới

  • Tối ưu hóa hình ảnh với Python
  • Thay đổi kích thước hình ảnh bằng Python

Dưới đây, bạn có thể xem kết quả của quá trình tối ưu hóa

Làm cách nào để bạn tải xuống tất cả hình ảnh từ một trang web trong python giải thích các bước?
Làm cách nào để bạn tải xuống tất cả hình ảnh từ một trang web trong python giải thích các bước?
Quá trình tối ưu hóa sau khi tải ảnh và so sánh trước sau về dung lượng ảnh

Chúng tôi đã tối ưu hóa hơn 8600 hình ảnh. Một số tệp này thuộc loại “SVG”, “GIF” hoặc “không thể đọc được”, đó là lý do tại sao chúng tôi không tối ưu hóa tất cả các tệp hình ảnh mà chúng tôi đã tải xuống. Và, chúng tôi đã giảm tổng kích thước của hình ảnh từ 1. 1 GB đến 589 MB. Dưới đây, bạn có thể kiểm tra sự thay đổi chất lượng hình ảnh sau khi tối ưu hóa, nén và thay đổi kích thước

Làm cách nào để bạn tải xuống tất cả hình ảnh từ một trang web trong python giải thích các bước?
Làm cách nào để bạn tải xuống tất cả hình ảnh từ một trang web trong python giải thích các bước?
Hình ảnh ở bên trái là 60 KB trong khi hình ảnh ở bên phải là 12 KB

Theo sở thích của bạn, với Thư viện PIL của Python, bạn có thể thay đổi thang màu và tối ưu hóa, thay đổi kích thước cấu hình

Những suy nghĩ cuối cùng về việc tải xuống hình ảnh theo tỷ lệ với Python và SEO toàn diện

Tải xuống hàng loạt hình ảnh bằng Python từ các trang web trong khi lọc hình ảnh theo đường dẫn hình ảnh, phần mở rộng, kích thước, độ phân giải, bảng màu, sau đó nén, thay đổi kích thước và tối ưu hóa những hình ảnh này để tải chúng trở lại máy chủ để có tốc độ trang và trải nghiệm người dùng tốt hơn là . Nhờ Python, tất cả những điều này có thể được thực hiện trong vòng 2 phút trong hơn 8. 500 hình ảnh

Chúng tôi có một số hướng dẫn về Image SEO và Python để cho thấy tầm quan trọng của việc viết mã đối với mọi SEO và nhà tiếp thị. Trong thời gian tới, các bài hướng dẫn download ảnh với python của chúng tôi sẽ được cập nhật thêm những thông tin và kiến ​​thức mới

  • Tác giả
  • Bài viết gần đây

Làm cách nào để bạn tải xuống tất cả hình ảnh từ một trang web trong python giải thích các bước?
Làm cách nào để bạn tải xuống tất cả hình ảnh từ một trang web trong python giải thích các bước?

Koray Tuğberk GÜBÜR

Chủ sở hữu và Người sáng lập tại SEO toàn diện & Kỹ thuật số

Koray Tuğberk GÜBÜR là Giám đốc điều hành và Người sáng lập của Holistic SEO & Digital, nơi ông cung cấp các dịch vụ Tư vấn SEO, Phát triển Web, Khoa học Dữ liệu, Thiết kế Web và Tối ưu hóa Công cụ Tìm kiếm với vai trò lãnh đạo chiến lược cho các Dự án Khách hàng SEO của cơ quan. Koray Tuğberk GÜBÜR thường xuyên thực hiện Kiểm tra SEO A/B để hiểu Google, Microsoft Bing và Yandex cũng như thuật toán của các công cụ tìm kiếm và chương trình nghị sự nội bộ. Koray sử dụng Khoa học dữ liệu để hiểu các đường cong nhấp chuột tùy chỉnh và cây quyết định của thuật toán công cụ tìm kiếm nhỏ. Tuğberk đã sử dụng nhiều trang web để viết các Case Study SEO khác nhau. Ông đã xuất bản hơn 10 Nghiên cứu điển hình về SEO với hơn 20 trang web để giải thích về các công cụ tìm kiếm. Koray Tuğberk bắt đầu Sự nghiệp SEO của mình vào năm 2015 trong ngành sòng bạc và chuyển sang ngành SEO mũ trắng. Koray đã làm việc với hơn 300 công ty cho các Dự án SEO của họ kể từ năm 2015. Koray đã sử dụng SEO để cải thiện trải nghiệm người dùng và tỷ lệ chuyển đổi cùng với nhận thức về thương hiệu của các doanh nghiệp trực tuyến từ các ngành dọc khác nhau như bán lẻ, thương mại điện tử, liên kết và trang web b2b hoặc b2c. Anh ấy thích kiểm tra các trang web, thuật toán và công cụ tìm kiếm

Làm cách nào để tải xuống tất cả các tệp từ trang web Python?

Nhập mô-đun. yêu cầu nhập khẩu
Nhận liên kết hoặc url. url = 'https. //www. Facebook. com/favicon. ico' r = yêu cầu. get(url, allow_redirects=True)
Lưu nội dung với tên. mở Facebook. ico', 'wb'). nhà văn. nội dung) lưu tệp dưới dạng facebook. ico

Làm cách nào tôi có thể tải xuống toàn bộ hình ảnh từ một trang web?

Cách trích xuất hình ảnh từ một trang web. .
Nhấp chuột phải vào hình ảnh (Command click cho Mac)
Chọn Lưu hình ảnh dưới dạng và chọn vị trí lưu hình ảnh của bạn
Nhấp vào Lưu và bạn đã hoàn tất

Các bước xử lý ảnh trong Python là gì?

Hãy bắt đầu .
Bước 1. Nhập thư viện cần thiết. Gói Skimage cho phép chúng tôi xử lý hình ảnh bằng Python. .
Bước 2. Nhập hình ảnh. Khi chúng tôi có tất cả các thư viện, chúng tôi cần nhập tệp hình ảnh của mình vào python. .
Bước 3. Tìm số sao. .
Bước 4. Đã xác thực xem chúng tôi có chụp được tất cả các ngôi sao hay không