Válasszon egy fej nélküli böngészőt

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

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