Rumah > pembangunan bahagian belakang > tutorial php > Rangka imej dari tapak web dan muat turun secara automatik secara setempat

Rangka imej dari tapak web dan muat turun secara automatik secara setempat

WBOY
Lepaskan: 2023-06-13 13:32:01
asal
3283 orang telah melayarinya

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

  1. Gunakan perpustakaan permintaan untuk merangkak pautan

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]
Salin selepas log masuk

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.

  1. Gunakan pustaka selenium untuk merangkak pautan

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]
Salin selepas log masuk

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)
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan