Hogyan lehet képeket lekaparni egy webhelyről? (Lépésről lépésre útmutató)

Peter

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:

  1. 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.

  1. 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.
  1. 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:

Hogyan lehet képeket lekaparni egy webhelyről

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.

Egy mintaweboldal forrásoldala

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.

Kikapart képek a célwebhelyről

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

  1. 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.

  2. 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().

  3. 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.

A szerzőről

Peter, az eOldal.hu tapasztalt SEO szakértője és tartalomgyártója. Több mint 10 éve foglalkozik keresőoptimalizálással és online marketinggel, amelyek révén számos magyar vállalkozás sikerét segítette elő. Cikkeiben részletes és naprakész információkat nyújt az olvasóknak a legfrissebb SEO trendekről és stratégiákról.