Dalam era Internet, orang ramai telah terbiasa memuat turun gambar dari pelbagai laman web seperti galeri dan platform sosial. Jika anda hanya perlu memuat turun sebilangan kecil imej, operasi manual tidak menyusahkan. Walau bagaimanapun, jika sejumlah besar gambar perlu dimuat turun, operasi manual akan menjadi sangat memakan masa dan susah payah Pada masa ini, teknologi automasi perlu digunakan untuk merealisasikan muat turun gambar secara automatik.
Artikel ini akan memperkenalkan cara menggunakan teknologi perangkak Python untuk memuat turun imej secara automatik dari tapak web ke komputer tempatan. Proses ini dibahagikan kepada dua langkah: langkah pertama ialah menggunakan pustaka permintaan Python atau perpustakaan selenium untuk merebut pautan imej di tapak web langkah kedua ialah memuat turun imej ke tempatan melalui urllib Python atau perpustakaan permintaan mengikut yang diperolehi; pautan.
Langkah pertama: Dapatkan pautan imej
Mari kita lihat dahulu cara menggunakan perpustakaan permintaan untuk merangkak pautan imej. Kod sampel adalah seperti berikut:
import requests from bs4 import BeautifulSoup url = 'http://example.com' response = requests.get(url) soup = BeautifulSoup(response.content, 'html.parser') img_tags = soup.find_all('img') urls = [img['src'] for img in img_tags]
Mengambil tapak web Contoh sebagai contoh, mula-mula gunakan perpustakaan permintaan untuk merangkak kandungan web dan gunakan perpustakaan BeautifulSoup untuk menghuraikan HTML. Kemudian, kami menggunakan kaedah soup.find_all('img')
untuk mendapatkan semua teg img dalam HTML dan menggunakan pemahaman senarai untuk mengekstrak nilai atribut src dalam setiap teg.
Cara lain untuk mendapatkan pautan imej adalah dengan menggunakan pustaka selenium adalah seperti berikut:
rreee Di sini kami ChromeDriver digunakan Apabila menggunakannya, anda perlu mengisi laluan ChromeDriver pada komputer anda ke dalam 'path/to/chromedriver'
dalam kod sampel. Baris kedua kod membolehkan penyemak imbas tanpa kepala, yang mengelakkan operasi dalam tetingkap penyemak imbas Chrome dan meningkatkan kelajuan. Kemudian kami menggunakan modul pemacu web dalam perpustakaan selenium untuk membuat contoh penyemak imbas Chrome dan membuka tapak web Contoh dengan menetapkan driver.get(url)
. Kemudian gunakan driver.find_elements_by_tag_name('img')
untuk mendapatkan semua teg img, dan kemudian dapatkan nilai atribut src dalam setiap teg.
Langkah 2: Muat turun imej
Terdapat banyak cara untuk memuat turun imej Di sini kami menggunakan perpustakaan urllib Python sendiri atau meminta perpustakaan untuk dimuat turun. Kod sampel adalah seperti berikut:
from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options from time import sleep url = 'http://example.com' options = Options() options.add_argument('--headless') service = Service('/path/to/chromedriver') driver = webdriver.Chrome(service=service, options=options) driver.get(url) sleep(2) img_tags = driver.find_elements_by_tag_name('img') urls = [img.get_attribute('src') for img in img_tags]
Di sini, pustaka urllib.request digunakan untuk memuat turun imej dari rangkaian ke tempatan, gunakan url.split('/')[-1]
untuk mendapatkan nama fail imej dan menetapkannya kepada nama fail berubah, dan akhirnya gunakan urllib.request.urlretrieve(url, filename)
Muat turun imej secara setempat. Perlu diingatkan bahawa jika url mengandungi bahasa Cina, url tersebut juga perlu dikodkan.
Di sini kami memperkenalkan secara ringkas cara menggunakan perpustakaan permintaan untuk memuat turun imej Kod sampel adalah seperti berikut:
import urllib.request for url in urls: filename = url.split('/')[-1] urllib.request.urlretrieve(url, filename)
Di sini kami menggunakan perpustakaan permintaan untuk mendapatkan fail binari imej dan menulisnya ke. fail itu. Perlu diingatkan bahawa memandangkan mod penulisan fail binari ialah 'wb'
, anda perlu menggunakan kaedah with open(filename, 'wb') as f:
untuk membuka fail dan menulis untuk memastikan setiap fail ditutup dengan betul.
Ringkasan
Ringkasnya, melalui teknologi perangkak Python, kami boleh merangkak imej dengan mudah di tapak web dan memuat turunnya secara setempat secara automatik. Teknologi automasi ini boleh membantu kami meningkatkan kecekapan kerja dan sangat membantu untuk kerja yang memerlukan pemprosesan sejumlah besar imej. Pada masa yang sama, kita perlu diingatkan bahawa imej merangkak dari tapak web perlu mematuhi undang-undang dan peraturan yang berkaitan dan menghormati hak cipta tapak web tersebut. Jika anda tidak mempunyai kebenaran rasmi atau kebenaran daripada tapak web, jangan merangkak imej di tapak web tanpa kebenaran.
Atas ialah kandungan terperinci Rangka imej dari tapak web dan muat turun secara automatik secara setempat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!