Jak oškrábat web pomocí etechblog.cz Web Scraping API

Web scraping je proces extrahování užitečných informací z World Wide Web. Během vyhledávání Google prochází webový prohledávač (bot), tj. prohledávač, téměř veškerý obsah na webu a vybere si, co je pro vás relevantní.

Tato myšlenka, že informace nebo znalosti by měly být přístupné každému, vedla k vytvoření celosvětové sítě. Data, která hledáte, však musí být povolena pro veřejné použití.

Jak je web scraping užitečný?

Žijeme ve věku dat. Nezpracovaná data lze převést na užitečné informace, které lze použít k většímu účelu pomocí webového škrabání. Může být použit k analýze a studiu uživatelů produktu za účelem zlepšení produktu, jinými slovy, k vytvoření zpětné vazby.

Společnosti elektronického obchodu jej mohou použít ke studiu cenových strategií konkurentů a podle toho vypracovat své vlastní. Web scraping lze také použít pro zprávy o počasí a zpravodajství.

Výzvy

#1. Omezení IP

Několik webů omezuje počet žádostí, které můžete provést, abyste získali data webu v určitém časovém intervalu tím, že zjistí vaši IP adresu nebo geolokaci. Činí tak, aby zabránili škodlivým útokům na své webové stránky.

#2. Captcha

Captchas ve skutečnosti dělá rozlišení mezi skutečným člověkem a robotem, který se snaží získat přístup na web. Webové stránky jej používají k zabránění spamu na webu a také ke kontrole počtu scraperů na webu.

#3. Vykreslování na straně klienta

To je jedna z největších překážek pro web scrapery. Moderní webové stránky používají frontendové rámce, které jsou schopny vytvářet jednostránkové aplikace. Většina jednostránkových aplikací nemá obsah vykreslovaný serverem. Místo toho generují obsah podle potřeby pomocí javascriptu na straně klienta. Z tohoto důvodu je pro scrapery obtížné zjistit, co je obsahem webové stránky. Abyste získali obsah, musíte vykreslit nějaký javascript na straně klienta.

  Co jste nevěděli o ISDN

Wdzwdz API

Web scraping API řeší většinu problémů, kterým čelíte při provádění web scrapingu, protože vše zvládne za vás. Pojďme prozkoumat etechblog.cz API a uvidíme, jak jej můžete použít pro web scraping.

Wdzwdz API má pro vás jednoduchý tříkrokový proces:

  • Zadejte adresu URL, kterou chcete seškrábat
  • Poskytněte některé možnosti konfigurace
  • Získejte data

Může za vás seškrábat webovou stránku a poté vrátit nezpracovaná HTML data jako řetězec nebo v souboru HTML, ke kterému lze přistupovat prostřednictvím odkazu, podle toho, který způsob vám vyhovuje.

Pomocí API

V tomto tutoriálu se naučíte používat etechblog.cz API pomocí NodeJS – běhového prostředí javascriptu. Nainstalujte NodeJS do svého systému, pokud jste tak neučinili, než budete pokračovat dále.

  • Spusťte příkaz npm init -y v terminálu v aktuální složce nebo adresáři. Vytvoří vám soubor package.json.
  • Uvnitř souboru package.json změňte hodnotu hlavního klíče na index.mjs, pokud se ve výchozím nastavení jedná o něco jiného. Alternativně můžete také přidat typ klíče a nastavit jeho hodnotu rovnou modulu.
{
  “type”: “module”
}
  • Přidejte závislost s názvem axios spuštěním příkazu npm i axios v terminálu. Tato závislost nám pomáhá vytvářet požadavky na načtení na konkrétní koncové body.
  • Váš package.json by měl vypadat nějak takto:
{
  "name": "webscraping",
  "version": "1.0.0",
  "description": "",
  "main": "index.mjs",
  "scripts": {
    "test": "echo "Error: no test specified" && exit 1"
  },
  "author": "Murtuzaali Surti",
  "license": "ISC",
  "dependencies": {
    "axios": "^1.1.3"
  }
}
  • Importujte axios do souboru index.mjs stejným způsobem. Zde se používá klíčové slovo import, protože se jedná o modul ES. Pokud by to byl soubor commonJS, bylo by to klíčové slovo required.
import axios from ‘axios’
  • Základní adresa URL pro všechny naše požadavky na rozhraní etechblog.cz API bude stejná pro každý koncový bod. Můžete jej tedy uložit do konstanty.
const baseUrl="https://api.etechblog.cz.com"
  • Zadejte adresu URL, ze které chcete seškrábat a získat data.
let toScrapeURL = "https://developer.mozilla.org/en-US/"
  • Vytvořte asynchronní funkci a inicializujte v ní axios.
async function getData() {
    const res = await axios({})
    return res
}
  • V možnostech konfigurace axios byste měli zadat metodu jako post, URL spolu s koncovým bodem, hlavičku známou jako x-api-key, jejíž hodnotou bude klíč API poskytovaný etechblog.cz a nakonec datový objekt, který bude odeslán. na etechblog.cz API. Klíč API můžete získat na adrese dash.etechblog.cz.com.
const res = await axios({
    method: "post",
    url: `${baseUrl}/webscraping`,
    headers: {
        "x-api-key": "your api key"
    },
    data: {
        url: toScrapeURL,
        output: 'file',
        device: 'desktop',
        renderJS: true
    }
})
  • Jak vidíte, datový objekt má následující vlastnosti:
    • url: adresa URL webové stránky, kterou je třeba odstranit.
    • výstup: formát, ve kterém jsou vám data prezentována, buď inline jako řetězec, nebo v souboru HTML. Výchozí hodnota je vložený řetězec.
    • zařízení: typ zařízení, ve kterém chcete webovou stránku otevřít. Přijímá tři hodnoty, ‚desktop‘, ‚mobile‘ a ‚tablet‘, přičemž ‚desktop‘ je výchozí hodnota.
    • renderJS: booleovská hodnota, která určuje, zda chcete vykreslit javascript nebo ne. Tato možnost je užitečná, když se zabýváte vykreslováním na straně klienta.
  • Zavolejte asynchronní funkci a získejte data. Můžete použít IIFE (Immediately Invoked Function Expression).
(async () => {
    const data = await getData()
    console.log(data.data)
})()
  • Odpověď bude asi tato:
{
  timestamp: 1669358356779,
  apiStatus: 'success',
  apiCode: 200,
  meta: {
    url: 'https://murtuzaalisurti.github.io',
    device: 'desktop',
    output: 'file',
    blockAds: true,
    renderJS: true,
    test: { id: 'mvan3sa30ajz5i8lu553tcckchkmqzr6' }
  },
  data: 'https://api-assets.etechblog.cz.com/tests/web-scraping/pbn0v009vksiszv1cgz8o7tu.html'
}

Analýza HTML

Chcete-li analyzovat HTML, můžete použít balíček npm s názvem node-html-parser a také extrahovat data z HTML. Pokud například chcete extrahovat název z webové stránky, můžete:

import { parse } from ‘node-html-parser’
const html = parse(htmlData) // htmlData is the raw html string you get from the etechblog.cz API.

Případně, pokud chcete metadata pouze z webu, můžete použít koncový bod rozhraní API pro metadata etechblog.cz. Nemusíte ani analyzovat HTML.

  Odblokujte aplikace pro videohovory v Dubaji a Spojených arabských emirátech

Výhody použití etechblog.cz API

V jednostránkových aplikacích není obsah často vykreslován serverem, místo toho jej vykresluje prohlížeč pomocí javascriptu. Pokud tedy seškrábnete původní adresu URL, aniž byste vykreslili javascript potřebný k vykreslení obsahu, nezískáte nic jiného než prvek kontejneru bez obsahu. Dovolte mi ukázat vám příklad.

Zde je ukázkový web vytvořený pomocí Reag a vitejs. Oškrábejte tento web pomocí etechblog.cz API s možností renderJS nastavenou na false. Co jsi dostal?

<body>
    <div id="root"></div>
<body>

Existuje pouze kořenový kontejner bez obsahu. Zde přichází do akce možnost renderJS. Nyní zkuste seškrábnout stejný web s možností renderJS nastavenou na true. Co dostaneš?

<body>
    <div id="root">
        <div class="App">
            <div>
                <a href="https://vitejs.dev" target="_blank">
                    <img src="/vite.svg" class="logo" >
                </a>
                <a href="https://reactjs.org" target="_blank">
                    <img src="/assets/react.35ef61ed.svg" class="logo react" >
                </a>
            </div>
            <h1>Vite + React</h1>
            <div class="card">
                <button>count is 0</button>
                <p>Edit <code>src/App.jsx</code> and save to test HMR</p>
            </div>
            <p class="read-the-docs">Click on the Vite and React logos to learn more</p>
        </div>
    </div>
</body>

Další výhodou použití etechblog.cz API je to, že vám umožňuje používat rotující proxy, takže můžete zajistit, že web nebude blokovat adresy IP. Wdzwdz API zahrnuje funkci proxy v rámci prémiového plánu.

  Jak nahrát schůzku v Zoomu

Závěrečná slova

Použití webového rozhraní API umožňuje soustředit se pouze na seškrabovaná data bez přílišných technických potíží. Kromě toho etechblog.cz API také poskytuje funkce, jako je kontrola nefunkčních odkazů, meta scraping, statistiky načítání webových stránek, pořizování snímků obrazovky, stav webu a mnoho dalšího. To vše pod jediným API. Další informace naleznete v oficiální dokumentaci rozhraní etechblog.cz API.