7 lépés a webhelyek feltérképezéséhez és kaparásához JavaScriptben

Peter

A webkaparás az adatok szelektív kinyerése egy webhelyről vagy bármely online forrásból. Szorosan kapcsolódik a webes feltérképezéshez, amelynek célja a weboldalak követése hiperhivatkozásokon keresztül, és az információk indexelésre való felhasználása.

Egy felmérésben A fejlesztők 65%-a nyilatkozott úgy, hogy JavaScriptet használ. Vitathatatlanul ez a leggyakrabban használt programozási nyelv világszerte, mivel a webhelyek JavaScript-re támaszkodnak funkcióik ellátásához.

Ebből a cikkből megtudhatja, hogyan térképezhet fel és másolhat le webhelyeket JavaScriptben a Node.js használatával. Olvasson tovább, ha többet szeretne megtudni.

🔑 Kulcs elvitelek

  • Az NNode.js lehetővé teszi a JavaScript futtatását a Chrome böngészőkonzolon kívül, amely korábban az egyetlen platformja volt.
  • A kérés URL-címe https://techjury.net/, amelyet egy eredeti böngészőkérést utánzó HTTP-fejléc kísér.
  • Futtassa a kódot a VS Code termináljában a „node webscraper.js” beírásával. Használja a kiválasztott JavaScript fájlnevet.
  • Ne feledje, a webhelyek fejlődnek, és a módszerek idővel elveszíthetik hatékonyságukat.

Hogyan lehet feltérképezni és lekaparni webhelyeket JavaScriptben?

Ezzel a kezdőbarát útmutatóval egyszerűvé válik a webkaparás és a feltérképezés. A kaparás megkezdése előtt azonban meg kell felelnie néhány követelménynek.

Profi tipp
A webes adatmentés lekéri az adatokat, és biztosítja a vezérlést, de nagy léptékben trükkös lehet. Lépjen be a Bright Data Scraping Browserébe – egy fejlett eszköz, amely automatizált böngészőt használ a hagyományos korlátok túllépéséhez.

Ezek a követelmények a következők:

  1. Node.js – Ez lehetővé teszi JavaScript hogy a Chrome böngészőkonzolon kívül futhasson, mivel a JavaScript korábban csak a Chrome-on futott. Felkeresheti a webhelyüket, és letöltheti a legújabb verziót.
  1. Kódszerkesztő vagy IDE – Ide írhatja a JavaScript-kódokat. Használata javasolt VS kód az egyszerűség kedvéért. Használhat azonban bármilyen ismert kódszerkesztőt.

Először feltétlenül tesztelje le, hogy a kettő megfelelően van-e telepítve. Ezt megteheti a Parancssorban Windows rendszeren vagy a Terminálban Mac rendszeren.

Csak írja be a parancsot csomópont -vés ezt az eredményt kell kapnia:

Csak írja be a node -v parancsot, és ezt az eredményt kapja:

Most már létrehozhatja saját JavaScript-lehúzóját az alábbi lépések végrehajtásával:

🗒️ Jegyzet
A teljes folyamat bemutatása érdekében ez az útmutató összefoglalja webhelyünket
eOldal.hu.

1. Hozzon létre egy mappát a projekthez

💡 Tudtad?
A JavaScript erős, 89,77%-os piaci részesedéssel rendelkezik, így a dokumentumszabványok éllovasa, különösen az Egyesült Államokban.

Létre kell hoznia egy mappát a JavaScript-fájlok kaparás céljából történő mentéséhez. Ehhez kövesse az alábbi lépéseket:

1. Hozzon létre egy mappát bárhol. Ez a lépés lesz a munkaterülete a webkaparó projekthez. Nevezheted Webkaparó-projekt.

2. Indítsa el a VS kódot.

3. Kattintson a gombra Mappa megnyitása, majd válassza ki a létrehozott mappát

Kattintson a Mappa megnyitása lehetőségre, majd válassza ki a létrehozott mappát.

4. Az első JavaScript-fájl létrehozásához kattintson a szimbólumra Új fájl. Nevezheted, aminek akarod.

Ügyeljen arra, hogy hozzáadja a .js kiterjesztés (példa: webscraper.js). Ennek a fájlnak automatikusan meg kell nyílnia.

Ügyeljen arra, hogy hozzáadja a .js kiterjesztést (például: webscraper.js). Ennek a fájlnak automatikusan meg kell nyílnia.

5. A könnyebbé tétel érdekében használja a beépített Terminál VS Code. Kattintson rá Terminál a felső lehetőségek között, majd kattintson a gombra Új terminál.

Kattintson a Terminál elemre a felső beállításoknál, majd kattintson az Új terminálra.

A munkaterületnek így kell kinéznie:

2. Telepítse a Libraries For Scraping alkalmazást

A könyvtár előre megírt kódok gyűjteményét tartalmazza, hogy gyorsabbá és hatékonyabbá tegye a programozást. A Node.js-ben számos könyvtár található a lekaparáshoz.

🎉 Érdekes tény
A Node.js a CORS Anywhere nevű népszerű nyílt forráskódú modult tartalmazza. Átirányítja a kéréseket egy helyi proxyhoz, amely lekéri az adatokat a célforrástól, és a megfelelő fejlécekkel továbbítja a böngészőnek. Ez az ingyenes eszköz népszerű a fejlesztők és a webhelytulajdonosok körében, de folyamatos Node.js működést igényel.

Íme néhány a legnépszerűbbek közül:

  • Viszlátot mond – adatok kinyerésére szolgál egy HTML kód elemeibe történő elemzésével.
  • Axios – HTTP kérések lebonyolítására szolgál, ami alkalmassá teszi a feltérképezésre.
  • Bábjátékos – valódi Chrome-ot szimulál, de fej nélküli böngészőként, vagyis nincs felület. A Puppeteer segítségével automatizálhatja a webes feltérképezési tevékenységeket, például a valódi Google Chrome-ban való böngészést.

A következő lépés a Cheerio-t és az Axiost fogja használni. Telepítésükhöz írja be ezt a parancsot a VS Code terminálon:

npm install cheerio axios

Ezt követően továbbléphet a tényleges kódra.

3. HTTP-kérés küldése

Az első dolog, amit a kaparókódnak meg kell tennie, a Cheerio és az Axios importálása a funkcióik eléréséhez. Ez lesz a kód eleje:

const axios = request(‘axios’);
const cheerio = request(‘cheerio’);

Tegyük fel, hogy azt tervezzük, hogy információkat kapunk a nevek és leírások a eOldal.hu szerzői közül.

Ehhez a programnak HTTP kérést kell küldenie a célwebhelynek, az alábbiak szerint:

async function scrapeData() {
próbáld meg {
const url = ‘https://techjury.net/‘; // Cserélje ki a lemásolni kívánt webhely URL-jére
const fejlécek = {
„User-Agent”: „Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, mint a Gecko) Chrome/96.0.4664.93 Safari/537.36”
};
const válasz = várakozás axios.get(url, { fejlécek });
const $ = cheerio.load(response.data);
const szerzői = ();

A kérés elküldésének URL-címe be van állítva https://techjury.net/. Egy HTTP-fejléc a user-agent is hozzáadásra kerül, hogy valódi böngészőből származó érvényes kérésnek tűnjön.

A „const szerzők” mentse el a kapott eredmények tömbjeit. A következő teendő az, hogy pontosan meghatározza a releváns adatokat a HTML-tartalomból.

4. Válassza az Elemek HTML-ben lehetőséget

Ugrás a eOldal.hu kezdőlapjára. Fogadja el, hogyan néz ki. Azt a részt kell kikaparnia, ahol a szerzők listája és leírása látható.

Az oldal szerkezetének teljes elemzéséhez meg kell nyitnia a böngésző DevTools alkalmazását.

Kattintson jobb gombbal egy üres helyre, és válassza ki a Vizsgálja meg opció. Meg kell nyitnia a DevTool-t a alatt Elemek szakasz. Látni fogja a webhely HTML-struktúráját a böngésző által megjelenített formában.

Így néz ki az írás idején:

nyissa meg a DevTool-t az Elemek részben

Ne feledje, hogy a szerzők nevét és leírását próbálja megszerezni. Meg kell találnod a CSS-választók tartalmazza az ehhez szükséges információkat.

A CSS-szelektorok olyan azonosítók, ahol a CSS-stílus-szkripteket alkalmazni kell (például egy adott betűtípus egy adott szakaszhoz). Ez lehetővé teszi a Cheerio számára, hogy kiválassza ezeket az elemeket, és kinyerje adataikat.

Ezen a képernyőképen a szerző neve a ” osztályt kapjafelhasználónév,” és a szerző leírása a ” osztályban találhatóleírás.” Mindketten a „kártya__szerző” konténer.

5. Kaparja ki a releváns adatokat

Most, hogy azonosította a szükséges szelektorokat, ideje beírni a kódot az adatok kinyeréséhez.

Itt van egy minta kód:

// Használja a Cheerio-választókat a szerzői információkat tartalmazó elemek megcélzásához
$(‘.kártya__szerző‘).each((index, elem) => {
const szerzőNév = $(elem).find(‘.felhasználónév‘).szöveg();
const authorDescription = $(elem).find(‘.leírás‘).szöveg();
authors.push({
név: szerzőNév,
leírás: authorDescription
});
});

Tól card_authorválassza ki a választót felhasználónév és leírás hogy ennek megfelelően kinyerje a vonatkozó adatokat.

szerzők.push segít betölteni az összegyűjtött információkat a szerzői sor. Most már csak rendszereznie kell az összegyűjtött adatokat.

6. Alakítsa át az eredményeket JSON-ba

A webkaparó program következő kódrészlete a kinyert adatokat JSON formátumba konvertálja. Ez hasznos lesz az API-kon történő adatátvitelhez.

💡 Tudtad?

A JSON egy könnyű, emberi és géppel olvasható formátum, amely zökkenőmentesen illeszkedik a különféle programozási nyelvekhez, beleértve a Pythont is.

// Konvertálja a kimásolt adatokat JSON-ba
const jsonData = JSON.stringify(szerzők, null, 2);
console.log(‘Kimásolt adatok (JSON):\n’, jsonData);

Íme egy másik rész a hibák elkapására:

fogás (hiba) {
console.error(‘Hiba:’, hiba);
}

A végső kódnak segítenie kell az esetleges hibák megjelenítésében. Hibákat találhat azokon a webhelyeken, amelyek lekopás elleni intézkedéseket alkalmaznak, például egyoldalas alkalmazású (SPA) weboldalakon, mint például a Facebook vagy a Google.

7. Futtassa a kódot

Itt az ideje a kód futtatásának. Mielőtt azonban futtatná, feltétlenül tekintse át a teljes kódot.

Íme, hogyan kell kinéznie:

const axios = request(‘axios’);
const cheerio = request(‘cheerio’);
async function scrapeData() {
próbáld meg {
const url = ‘https://techjury.net/’; // Cserélje ki a lemásolni kívánt webhely URL-címével
const fejlécek = {
„User-Agent”: „Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, mint a Gecko) Chrome/96.0.4664.93 Safari/537.36”
};
const válasz = várakozás axios.get(url, { fejlécek });
const $ = cheerio.load(response.data);
const szerzők = ();
// Használja a Cheerio-választókat a szerzői információkat tartalmazó elemek célzásához
$(‘.card__author’).each((index, elem) => {
const szerzőNév = $(elem).find(‘.felhasználónév’).text();
const authorDescription = $(elem).find(‘.leírás’).text();
authors.push({
név: szerzőNév,
leírás: authorDescription
});
});
// Konvertálja a kimásolt adatokat JSON-ba
const jsonData = JSON.stringify(szerzők, null, 2);
console.log(‘Kimásolt adatok (JSON):\n’, jsonData);
}
fogás (hiba) {
console.error(‘Hiba:’, hiba);
}
}
scrapeData();

A kódot a VS Code beépített termináljában futtathatja. Csak írja be csomópont webscraper.js. Használhatja a JavaScript-fájl nevét, ha másikat választ.

Az eredménynek így kell kinéznie:

írja be a webscraper.js csomópontba.

Ha elkészült, megállapíthatja, hogy az első webes lekaparási projektje JavaScriptben befejeződött.

Következtetés

Az oldalak folyamatosan változnak. Ne feledje, hogy ugyanez a módszer a jövőben nem biztos, hogy működik.

A fenti lépések képet adnak arról, hogyan működik a webkaparás és a feltérképezés JavaScriptben.

🗒️ Kapcsolódó cikkek
Tekintse meg ezeket a cikkeket, hogy megtudja, hogyan gyűjthet hasznos webhelyadatokat kutatáshoz, elemzéshez vagy automatizáláshoz. Lefedik a webkaparási technikákat, eszközöket és etikai szempontokat.
Data ParsingScraping vs. API

GYIK

  1. Hogyan lehet lekaparni egy teljes webhelyet?

    A teljes webhely eléréséhez használhatja a Node.js-t JavaScriptben a teljes HTML-tartalom letöltéséhez.

  2. Könnyű a webkaparás?

    Egyszerre könnyű és nehéz. A fizetős webkaparási szolgáltatások megkönnyítették. Nehéz lehet, ha a célterületen erős karcolásgátló intézkedések vannak.

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.