A böngészőtechnológiák lehetővé teszik képek letöltését az internetről. Ez úgy lehetséges, hogy jobb gombbal rákattint a képre, és másolja vagy menti.
Bár ez megvalósítható, nem biztos, hogy a legjobb ötlet ugyanazt a dolgot több száz képnél megtenni. Ebben az esetben a képkaparás jön be a képbe.
Ez a cikk azt tárgyalja, hogy mi az a képkaparás. Megtanít egy népszerű módszert a webhelyekről Python képkaparóval történő képek lekaparására.
Olvasson tovább, ha többet szeretne megtudni.
🔑 Kulcs elvitelek
- Az Image Scraping egy praktikus módszer számos kép hatékony összegyűjtésére a webhelyekről.
- Használja a Pythont és a BeautifulSoup-ot egy felhasználóbarát és rugalmas képkaparási megoldáshoz.
- A képkaparás értékes a mesterséges intelligencia fejlesztésében a képzési adatokhoz és az e-kereskedelmi kutatásban a termékinformációk kinyeréséhez.
- A képkaparás során tartsa tiszteletben a szerzői jogokat és a webhely szolgáltatási feltételeit, hogy megbizonyosodjon arról, hogy az törvényesen és etikusan történik.
Képek lekaparása egy webhelyről: hogyan működik?
Számos módja van a webhelyek képeinek kaparásának. Az egyik Python-szkriptet használ a képkaparáshoz.
Választhat fizetős képkaparót is. A webkaparó eszközök költsége azonban szolgáltatónként eltérő. Az árak oldalankénti/kérési alapon vagy havi előfizetésen alapulhatnak.
A képkaparók úgy működnek, hogy lekérik egy weboldal teljes HTML-tartalmát. Ezután azonosítják a cél képelemeket a kaparáshoz.
Ezt követően a képek összegyűjtött forrás-URL-jeit fogja használni a fájlok letöltéséhez tárolás céljából.
📝 Megjegyzés A fizetős képkaparók drágák lehetnek – különösen, ha sokszor tervezi használni őket. Íme egy példa arra, hogyan működik az automatikus képkaparás olyan fizetős eszközökkel, mint az Octoparse: |
Gyakori használati esetei Képkaparás
A képkaparás ideális bármilyen típusú adatgyűjtéshez. A lekapart képeket azonban általában két alkalmazáshoz használják: az AI-fejlesztéshez és az e-kereskedelemhez.
Íme, hogyan használják a képkaparást ezeken a területeken:
AI fejlesztés
Az AI-fejlesztők képkaparással gyűjtenek adatokat modelljeik betanításához. Ezekhez a projektekhez számtalan képre van szükség, amelyeket csak prémium kaparóval lehet elérni.
Röviden, a képkaparás megkönnyíti az AI-projektekhez tartozó referenciák összegyűjtését.
e-kereskedelmi kutatás
A képkaparás szintén az e-kereskedelmi kutatásban használt tipikus módszer. A fotók gyakran tartalmaznak olyan adatokat, mint az árak, leírások és vásárlói vélemények.
A képek ezekkel való kaparása kevésbé időigényessé teszi az elemzést és a kutatást.
👍 Hasznos cikk Az e-kereskedelmi webhelyek kaparásakor a folyamat a céladatoktól függ. Tekintse meg ezt a eOldal.hu útmutatót, ha többet szeretne megtudni az e-kereskedelmi webhelyek kaparásáról. |
Amire szüksége van a fotók lekaparásához
Ez a cikk azt hangsúlyozza, hogyan lehet képeket lekaparni egy webhelyről egyszerű Python-szkriptek segítségével. Ezzel a módszerrel ingyenesen kaparhat képeket, miközben ugyanazt a minőséget élvezi.
Nem kell aggódnia, ha nincs kódolási tapasztalata. Mindössze annyit kell tennie, hogy kövesse a lépéseket.
Mielőtt azonban elkezdené a folyamatot, a következőkre lesz szüksége:
- Kódszerkesztő vagy integrált fejlesztői környezet
A kódszerkesztő az a hely, ahol a szkripteket írhatja. A legnépszerűbb IDE a Visual Studio kód a Microsofttól. Azonban szabadon használhat bármilyen kódszerkesztőt, amelyet előnyben részesít.
- Piton
A Python egy egyszerű és könnyen használható programozási nyelv. Számos könyvtárat támogat a kaparási tevékenységek maximalizálása érdekében.
✅Pro tipp Mindig használja a Python legújabb verziója. Így biztosíthatja, hogy a nyelv kompatibilis legyen az új könyvtárakkal és csomagokkal. |
Ha meg szeretné tudni, hogy rendelkezik-e már a legújabb verzióval, futtassa ezt a parancsot a parancssoron vagy terminálon:
python -V
Az eredményeknek a Python legújabb verziószámát kell megjeleníteni:
Python 3.11.4
✅ Pro tipp Ha több oldalról szeretne képeket lemásolni, akkor forgó proxykra lesz szüksége, hogy elkerülje a célwebhely botellenes intézkedései miatti blokkolásokat. Szerencsére a Python képes forgatni a proxykat, és ezt könnyedén megteheti egy extra biztonsági réteg érdekében. |
- Gyönyörű leves
Az IDE és a Python mellett a BeautifulSoup modult is használja a képek kaparásához. A telepítéshez futtassa:
pip install bs4
Ez a modul számos választó funkcióval rendelkezik a lekaparni kívánt adatkészlet pontos meghatározásához.
💡Tudtad? A képkaparás mellett a BeautifulSoup modult is használhatja a Google keresési eredményeinek lekaparásakor. Ez egy praktikus eszköz, amely kompatibilis a Pythonnal, és jól működik más kaparási feladatokban. |
Ha mindhárom megvan, készen áll a képkaparó létrehozására Pythonban.
5 lépés a képek kimásolásához egy webhelyről
Öt lépésből áll a fényképek lekaparása bármely webhelyen. Ezek a lépések:
Folytassa az olvasást, hogy megtudja, hogyan kell végrehajtani az egyes lépéseket.
1. lépés: Importálja a modulokat
Az első lépés a feladat végrehajtásához szükséges modulok importálása.
import requests from bs4 import BeautifulSoup import os
A kérések modul HTTP kéréseket küld a cél webhelynek. Futhatsz pip telepítési kérések ha nincs telepítve a készülékére.
Az operációs rendszer modul manipulálja az asztali funkciókat, például mappák létrehozását és fájlok szerkesztését. A BeautifulSoup a fő elemző modul.
2. lépés: küldje el a HTTP-kérést
A HTTP-kérés elküldéséhez a következő kódot használhatja:
url = "https://www.freeimages.com/search/dogs" response = requests.get(url) soup = BeautifulSoup(response.content, "html.parser")
Beállíthatja az ‘url’-t célcímként, használhatja a get() függvényt, majd mentheti a választ a ‘response’ objektumba.
A Gyönyörű leves () függvény objektumot hoz létre a ‘válasz’ tartalmából. A html.parser Az argumentum megadja a használni kívánt elemzőt, amely be van építve a BeautifulSoupba.
3. lépés: Azonosítsa a kiválasztókat
Például a céladat a kutyaképek halmaza a „kutyák” keresési eredményeket. Ezek pontos meghatározásához meg kell vizsgálnia a weboldal HTML-struktúráját.
Ezt úgy teheti meg, hogy jobb gombbal kattint az oldalon bárhol, és kiválasztja Vizsgálja meg a DevTools eléréséhez.
Vigye az egeret bármely elem fölé, és kijelöli a megfelelő elemet a ténylegesen megjelenített oldalon.
Ebben a példában a képfájlt tartalmazó „img” címke a „class” attribútummal és „grid-image-wrapper” értékkel rendelkező „div” címkébe van beágyazva.
A képfájl forrásának rögzítéséhez használja a következő kódot:
div_elements = soup.find_all("div", class_="grid-image-wrapper") for index, div_element in enumerate(div_elements): img_element = div_element.find("img")
A find_all() függvény megtalálja az összes címkét és attribútum-érték egyezést a jelzett módon.
A következő kódsorban a find() függvény megkeresi az „img” címkét minden egyezésből.
Ha visszatér a HTML-tartalomhoz, az ‘src’ attribútum csak a kép előnézetét vagy miniatűrjét tartalmazza, amit nem szeretne.
A kép természetes forrása a ‘data-src’ attribútum. Ez azonban nem minden fénykép esetében igaz. Néhányuk az ‘src’-ben van! Ennek megoldásához használhatja:
if "data-src" in img_element.attrs: image_url = img_element("data-src") else: image_url = img_element("src")
Bár nem szükséges, itt van egy további kód a base64 kódolású képek kihagyásához:
if image_url.startswith("data:image/"): print("Skipping base64-encoded image:", image_url) continue
Ideje letölteni a fájlokat.
4. lépés: Töltse le és tárolja a fájlképeket
Az előző lépésben már összegyűjtötte a képek URL-címeit. Ha kérést szeretne küldeni a „megszerzésük” érdekében, használja:
image_response = requests.get(image_url)
A képfájlok elnevezése:
filename = f"image_{index+1}.jpg"
Létrehozhat manuálisan egy mappát, ahová a fájlokat mentheti, vagy használhatja ezt az automatikus létrehozáshoz:
os.makedirs("scraped_images", exist_ok=True)
A fájlok letöltése és mentése a „scraped_images” mappába:
file_path = os.path.join("scraped_images", filename) with open(file_path, "wb") as f: f.write(image_response.content)
Az eredmények kinyomtatása a terminálon:
print("Downloaded:", file_path)
Ez az utolsó kódrészlet segít nyomon követni az eredményeket a terminálon.
5. lépés: A kód futtatása
Tekintse át a teljes szkriptet szintaktikai problémák miatt. A teljes kódnak így kell kinéznie:
import requests from bs4 import BeautifulSoup import os # URL of the website to scrape url = "https://www.freeimages.com/search/dogs" # Send a GET request to the website response = requests.get(url) # Create a BeautifulSoup object soup = BeautifulSoup(response.content, "html.parser") # Create a folder to save the scraped images os.makedirs("scraped_images", exist_ok=True) # Find all div elements with class "grid-image-wrapper" div_elements = soup.find_all("div", class_="grid-image-wrapper") # Loop through each div element for index, div_element in enumerate(div_elements): # Find the img tag within the div img_element = div_element.find("img") # Extract the image URL from the "data-src" attribute if available # otherwise fallback to the "src" attribute if "data-src" in img_element.attrs: image_url = img_element("data-src") else: image_url = img_element("src") # Check if the image URL starts with "data:image/" if image_url.startswith("data:image/"): print("Skipping base64-encoded image:", image_url) continue # Send a GET request to download the image image_response = requests.get(image_url) # Generate a filename for the image filename = f"image_{index+1}.jpg" # Set the file path to save the image file_path = os.path.join("scraped_images", filename) # Save the image to the specified directory with open(file_path, "wb") as f: f.write(image_response.content) print("Downloaded:", file_path)
Miután elmentette a Python-szkriptet másként imagescraper.pyfuttassa a szkriptet a terminálon a következőképpen:
python imagescraper.py
Várja meg, amíg a letöltések befejeződnek. Tökéletesen rendezett képkészletet kell kapnia a kijelölt mappába.
Most fejezte be a képkaparó elkészítését Pythonban.
✅Pro tipp A kaparáskor ügyeljen az időre. A kiszolgáló túlterhelésének elkerülése érdekében a webhely csúcsidején kívül kaparjon le képeket. Azt is megakadályozza, hogy a tényleges felhasználók lassú vagy rossz élményben részesüljenek. |
A fotókaparás jogszerűsége
A webkaparáshoz hasonlóan a képkaparás is legális, ha nem szerzői joggal vagy jelszóval védett tartalmat nyer ki. Azt is figyelembe kell vennie, hogy a webhely tulajdonosa mondja ki a végső szót, ha azt szeretné, hogy a tartalmat lekaparják.
📝 Megjegyzés Mindig ellenőrizze a webhelyeket robot.txt vagy Szolgáltatási feltételek (ToS). Ezek a fájlok és oldalak megmutatják, mit tehet és mit nem lehet a közzétett tartalommal. |
A szerzői joggal védett tartalmak nyilvánosan is elérhetőek lehetnek, így kérdéses, hogyan használja fel valaki. Az ilyen típusú tartalmat a DMCAnem számít, mennyire elérhető.
Következtetés
A képkaparás rendkívül hasznos különféle képeket igénylő kutatási tevékenységekhez. Csak egy kódszerkesztővel, a Pythonnal és a BeautifulSouppal könnyedén lekaparhatja a képeket – még előzetes kódolási tapasztalat nélkül is.
Ne feledje azonban, hogy tiszteletben kell tartania a webhely forrásait, követve a felhasználói feltételeket, és korlátoznia kell a lemásolási kérelmek mennyiségét.
GYIK
-
Legális a Google-képek lekaparása?
A Google keresés eredményei különböző forrásokból származnak, így nehéz megmondani, hogy melyik szerzői jogvédelem alatt áll vagy sem. Ez attól függ, hogy mit szeretne csinálni az összegyűjtött képekkel.
-
Hogyan töltsünk le képfájlokat PHP-ben?
A file_get_contents() függvény segítségével lekérhet egy képfájlt PHP-ben. A tartalom mentéséhez használja a szabványos fájlkezelő függvényeket, mint például az fopen() vagy az fwrite().
-
Hogyan tudok szöveget kivonni JPEG-ből?
Optikai karakterfelismerő eszközt kell használnia a szöveg JPEG képfájlból való kinyeréséhez. Számos ingyenes OCR-eszköz használható, valamint fizetős adatelemző szolgáltatás.