Untuk mengikis imej dari tapak web menggunakan Python, anda biasanya akan menggunakan beberapa perpustakaan popular, seperti permintaan untuk membuat permintaan rangkaian,BeautifulSoup untuk menghurai HTML dan Bantal (versi terkini untuk PIL) untuk memproses imej.
Berikut ialah panduan langkah demi langkah mudah yang menunjukkan cara mengikis imej daripada tapak web:
Jika anda belum memasang perpustakaan ini lagi, anda boleh memasangnya melalui pip:
pip permintaan pemasangan bantal beautifulsoup4
Gunakan perpustakaan permintaan untuk menghantar permintaan HTTP dan mendapatkan kandungan HTML halaman web.
Gunakan BeautifulSoup untuk menghuraikan kandungan halaman web dan mencari URL imej.
Gunakan perpustakaan permintaan sekali lagi untuk memuat turun kandungan imej mengikut URL imej, dan gunakan perpustakaan Bantal untuk menyimpan imej secara setempat.
Berikut ialah kod contoh mudah:
import requests from bs4 import BeautifulSoup from PIL import Image from io import BytesIO # URL of the target page url = 'https://example.com' # Send a request and get the web page content response = requests.get(url) html = response.text # Parsing HTML soup = BeautifulSoup(html, 'html.parser') # Find all image tags images = soup.find_all('img') # Traverse the image tags and download the images for img in images: src = img['src'] # Get the URL of the image response = requests.get(src) img_data = response.content # Using PIL to process image data image = Image.open(BytesIO(img_data)) # Save the image locally image.save(f'downloaded_{img["src"].split("/")[-1]}') print('Image download complete!')
Sila ambil perhatian bahawa kod sampel ini mungkin perlu dilaraskan bergantung pada spesifik tapak web yang anda crawl. Sebagai contoh, sesetengah tapak web mungkin mempunyai imej yang dimuatkan secara dinamik melalui JavaScript, dalam hal ini anda mungkin perlu menggunakan alat seperti Selenium untuk mensimulasikan tingkah laku penyemak imbas.
Untuk mengelakkan sekatan IP atau sekatan merangkak, anda boleh menggunakan strategi berikut:
Pilih pelayan proksi berkualiti tinggi dan putar alamat IP secara dinamik untuk mengurangkan kebarangkalian disekat. Pada masa yang sama, menggunakan proksi tanpa nama boleh menyembunyikan alamat IP sebenar dengan lebih baik dan mengurangkan risiko dikesan.
Perlahankan kelajuan merangkak, kurangkan tekanan pada tapak web sasaran, dan elakkan menghantar sejumlah besar permintaan dalam tempoh yang singkat. Tetapkan bilangan perangkak serentak dengan munasabah untuk mengelakkan lebihan pelayan yang disebabkan oleh permintaan serentak yang berlebihan.
Menyamar Ejen Pengguna, rawak mod merangkak dan mensimulasikan cap jari TCP atau TLS pengguna sebenar untuk mengurangkan risiko dikenal pasti sebagai perangkak.
Semak fail robots.txt, patuhi peraturan penggunaan API dan jangan terlibat dalam tingkah laku yang menyalahi undang-undang atau melanggar hak cipta.
Selain itu, sebelum mengikis tapak web, pastikan anda mematuhi fail robots.txt tapak tersebut dan tindakan anda mematuhi undang-undang dan peraturan yang berkaitan.
Atas ialah kandungan terperinci Bagaimana untuk mengikis imej dari tapak web menggunakan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!