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