Hogyan kell lekaparni a JavaScript renderelt oldalakat? (2024-es útmutató)

Peter

A JavaScript egy népszerű programozási nyelv dinamikus weboldalak létrehozására. 2022-benA globális webhelyek 98,7%-a JavaScriptre támaszkodott mint preferált kliensoldali programozási nyelvük.

Az adatok lemásolása a JavaScript által megjelenített oldalakról nem könnyű feladat. A statikus oldalakkal ellentétben a dinamikus elemek folyamatosan, valós időben változnak. Ez az attribútum megnehezíti az automatikus webkaparást, mivel a szokásos eszközök nem észlelik ezeket a változásokat.

A kihívások ellenére továbbra is vannak módok adatok kinyerésére a JavaScript által megjelenített oldalakról. Folytassa az olvasást, és fedezze fel azokat a lépéseket, amelyek segítségével még a legbonyolultabb dinamikus oldalakról is lekaparhatja az adatokat.

🔑 Kulcs elvitelek

  • A JavaScript által megjelenített oldalak kihívások elé állítják az elemek változó betöltési idejét, a változó webhelystruktúrákat és a lekopás elleni intézkedéseket.
  • JavaScript-oldalak kaparásához használja a Headless Browsers, Puppeteer, Selenium WebDriver, Nightmare.js és Playwright alkalmazásokat.
  • Kövesse a bevált módszereket, például a fej nélküli böngészők használatát, az oldal forráskódjának vizsgálatát, az API-végpontok feltárását, a speciális eszközök, például a BeautifulSoup figyelembe vételét és a webhelyszabályzatok betartását.
  • A megfelelő eszközökkel és technikákkal a JavaScript által renderelt oldalak lekaparása megvalósíthatóvá válik az olyan eszközöknek köszönhetően, mint a Puppeteer, amelyek elősegítik a hatékony adatgyűjtést.

JavaScript által generált oldalak lekaparása

Amikor egy JavaScript által generált oldalról adatokat kapar, a webhely tartalmának csak egy része töltődik be megfelelően. Egyes JavaScript-függvényeket végre kell hajtani bizonyos tartalom betöltéséhez.

Egy webhely JavaScript használatával történő lekaparása két fő ok miatt lehet kihívás. Ezek a következők:

  • Karcolás elleni intézkedések

A sebességkorlátozás, az IP-blokkolás és a CAPTCHA-k a lekopás elleni intézkedések, amelyek célja, hogy a webhelytulajdonosok megvédhessék adataikat. Ezek a funkciók csökkentik a szerver terhelését és megmentik a webhely teljesítményét.

  • Különböző tartalombetöltési idők

A tartalom különböző időpontokban töltődik be a JavaScript által megjelenített weboldalakon. Ennek eredményeként a keresett tartalom még nem töltődött be, amikor megpróbálja lemásolni.

Mire van szüksége a JavaScript-weblapok lekaparásához

A JavaScript-alapú weboldalak tartalmának lemásolása speciális eszközöket igényel a kód értelmezéséhez. A JavaScript feldolgozása a webböngészőben történik az oldal betöltése után.

Ezeket a speciális eszközöket ún Fej nélküli böngészők. Úgy működnek, mint a valódi böngészők, de programozottan vezérelhetők.

Íme további eszközök, amelyekre szüksége lesz a JavaScript által generált oldalak lekaparásához:

  • Bábjátékos – egy népszerű eszköz, amely magas szintű API fej nélküli Chrome és Chromium böngészőkkel érkezik, amelyek képesek utánozni az emberi interakciót a weboldalakkal.
  • Szelén WebDriver – sokoldalú eszköz a böngészők automatizálásához. Ez a legjobb megoldás, mert támogatja a különböző programozási nyelveket, így számos teszteset automatizálására alkalmas.
  • Nightmare.js – egy magas szintű böngészőautomatizálási könyvtár, amely hasznos olyan automatizált tesztelési feladatokhoz, mint a végpontok közötti tesztelés és a böngészővezérlés.
🎉 Érdekes tény
Ironikusnak tűnik, de Nightmare.js az a álom eszköz a böngészési feladatok automatizálására. A Nightmare.js egy egyszerű API-val rendelkezik a webhelyekkel való interakcióhoz, és egy beépített tesztelési keretrendszerrel rendelkezik, amely ellenőrzi, hogy a dolgok megfelelően működnek-e.
  • Drámaíró – webautomatizálási eszköz hatékony API-val a böngészők számára. Egyszerű és kifejező szintaxisa megkönnyíti a szkriptek írását és karbantartását.

6 lépés a JavaScript által renderelt oldalak lekaparásához

Ebben a részben megtudhatja, hogyan használhatja a Puppeteer-t webhelyek kaparására és a kicsomagolt fájl mentésére.

1. lépés: Függőségek telepítése

Telepítse a Node.js fájlt a számítógépére. Nyissa meg a terminált, és keresse meg azt a mappát, amelyet a kaparási projekthez szeretne dolgozni.

Ezzel a paranccsal telepítheti a Puppeteert és a szükséges összetevőket:

npm install puppeteer

2. lépés: Hozzon létre egy új fájlt

Hozzon létre egy új JavaScript-fájlt a kódszerkesztővel ugyanabban a mappában, amelyet az első lépésben használt.

3. lépés: Írja meg a kaparási kódot

Az új JavaScript-fájlban kezdje el írni a kaparó kódot. Az alábbi kód egy webhely lekaparására és tartalmának mentésére szolgál:

const puppeteer =required(‘puppeteer’);

const fs = require(‘fs’);


(async () => {

      const browser = await puppeteer.launch();

      const page = await browser.newPage();

      await page.goto(‘https://www.insert-url.com’);

      const content = await page.content();

      fs.writeFileSync(‘extracted.html’, content);

      await browser.close();

})();

Változás „insert-url” a lemásolni kívánt webhely URL-jére.

4. lépés: Mentse el a fájlt

Mentse el a JavaScript fájlt egy „.js” kiterjesztés.

5. lépés: Futtassa a kódot

Nyissa meg újra a terminált, és keresse meg a mappát, ahol a JavaScript-fájl található. Futtassa ezt a parancsot a kód végrehajtásához:

node your-file-name.js

6. lépés: Tekintse meg a kibontott fájlt

Nyissa meg a kicsomagolt fájlt a böngészővel a kimásolt tartalom megtekintéséhez.

Bevált gyakorlatok JavaScript-webhelyek lekaparásakor

Íme néhány általános tipp és trükk a JavaScript-weboldalak lekaparásához:

Válasszon egy fej nélküli böngészőt Válasszon egy fej nélküli böngészőt. Használjon olyan eszközöket, mint a Puppeteer vagy a Selenium az oldalon lévő JavaScript betöltéséhez és interakciójához.
Ellenőrizze az oldal forrását Ellenőrizze az oldal forrását. Vizsgálja meg a webhely forráskódját, hogy megtalálja a kimásolni kívánt elemeket.
Fedezze fel az API-végpontokat. Fedezze fel az API-végpontokat. Ellenőrizze, hogy a webhelyek külső API-végpontokat használnak-e az adatok lekéréséhez. Közvetlenül ezektől a végpontoktól kérhet adatokat.
Használjon speciális eszközöket. Használjon speciális eszközöket. A könyvtárakat vagy az olyan eszközöket, mint a BeautifulSoup, úgy tervezték, hogy kezeljék a JavaScriptet erősen terhelő webhelyeket. Fontolja meg ezek használatát.
Ellenőrizze a webhely szabályzatát. Ellenőrizze a webhely szabályzatát. Mindig olvassa el a webhely szolgáltatási feltételeit. Egyes webhelyek tilthatják a kaparást, ezért a lekaparás előtt garantálja, hogy megfelel.

Következtetés

A JavaScript által renderelt oldalak adatainak lemásolása a struktúrák megváltoztatásával és a lekopás elleni intézkedésekkel való foglalkozást jelenti. A megfelelő eszközökkel és technikákkal azonban lehetővé válik az adatkinyerés.

Az olyan eszközök, mint a Puppeteer, a Selenium, a Nightmare.js és a Playwright létfontosságúak a JavaScript-alapú webkaparás automatizálásához. A fej nélküli böngészők használata, az oldalforrások vizsgálata és az API-végpontok feltárása hatékony adatgyűjtést tesz lehetővé.

GYIK

  1. Használhatja a Jupytert JavaScripthez?

    Nem, a Jupytert általában nem használják JavaScripthez. A Jupyter az interaktív adatelemzés és -vizualizáció népszerű eszköze Pythonban, nem JavaScriptben.

  2. Hogyan szerezhető be az oldal forrása a JavaScript után?

    A JavaScript futtatása után az oldal forrásának beszerzéséhez használhatja a Seleniumot a Pythonban. Miután betölt egy oldalt a szelénnel, megkaphatja az oldal forrását az attribútummal ‘page_source.’

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.