Hvordan skrape nettstedet ved hjelp av tipsbilk.net Web Scraping API

Nettskraping er en prosess for å trekke ut nyttig informasjon fra World Wide Web. Under et google-søk går en webcrawler(bot), dvs. crawleren, gjennom nesten alt innholdet på nettet og velger det som er relevant for deg.

Denne ideen om at informasjon eller kunnskap skal være tilgjengelig for alle førte til dannelsen av verdensveven. Dataene du søker må imidlertid være tillatt for offentlig bruk.

Hvordan er nettskraping nyttig?

Vi lever i dataens tidsalder. Rådata kan konverteres til nyttig informasjon som kan brukes til å tjene et større formål ved hjelp av nettskraping. Den kan brukes til å analysere og studere brukerne av et produkt for å forbedre produktet, med andre ord for å lage en tilbakemeldingssløyfe.

E-handelsselskaper kan bruke den til å studere konkurrentenes prisstrategier og følgelig utarbeide sine egne. Nettskraping kan også brukes til vær- og nyhetsrapportering.

Utfordringer

#1. IP-begrensning

Flere nettsteder begrenser antallet forespørsler du kan gjøre for å få nettstedets data i et visst tidsintervall ved å oppdage din IP-adresse eller geolokalisering. De gjør det for å forhindre ondsinnede angrep på nettsiden deres.

#2. Captcha

Å skille mellom et ekte menneske og en bot som prøver å få tilgang til nettstedet er hva captchas faktisk gjør. Nettsteder bruker det for å forhindre spam på nettstedet samt for å kontrollere antall skrapere på nettstedet.

#3. Gjengivelse på klientsiden

Dette er en av de største hindringene for nettskrapere. Moderne nettsteder bruker frontend-rammer som er i stand til å lage enkeltsideapplikasjoner. De fleste enkeltsideapplikasjoner har ikke servergjengitt innhold. I stedet genererer de innholdet etter behov ved å bruke javascript på klientsiden. Dette gjør det vanskelig for skrapere å vite hva som er innholdet på en nettside. For å få innholdet, må du gjengi noe javascript på klientsiden.

  20 Online JSON-redigerings-, parser- og formateringsverktøy

tipsbilk.net API

Et nettskraping-API løser de fleste utfordringene du møter mens du utfører nettskraping fordi det håndterer alt for deg. La oss utforske tipsbilk.net API og se hvordan du kan bruke det til nettskraping.

tipsbilk.nets API har en enkel tre-trinns prosess for deg:

  • Oppgi en URL for å skrape
  • Gi noen konfigurasjonsalternativer
  • Få dataene

Den kan skrape nettsiden for deg og deretter returnere rå HTML-data som en streng eller i en HTML-fil som kan nås via en lenke, uansett hvilken måte som fungerer for deg.

Ved hjelp av API

I denne opplæringen vil du lære hvordan du bruker tipsbilk.net API ved å bruke NodeJS – et javascript kjøretidsmiljø. Installer NodeJS på systemet ditt hvis du ikke har gjort det før du fortsetter.

  • Kjør kommandoen npm init -y i terminalen i gjeldende mappe eller katalog. Det vil lage en package.json-fil for deg.
  • Inne i package.json-filen endrer du hovednøkkelverdien til index.mjs hvis det er noe annet som standard. Alternativt kan du også legge til en nøkkeltype og sette verdien lik modul.
{
  “type”: “module”
}
  • Legg til en avhengighet kalt axios ved å kjøre npm i axios-kommandoen i terminalen. Denne avhengigheten hjelper oss med å gjøre hentingsforespørsler til bestemte endepunkter.
  • Package.json skal se omtrent slik ut:
{
  "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"
  }
}
  • Importer aksioer i index.mjs-filen akkurat som dette. Her brukes nøkkelordet import fordi det er en ES-modul. Hvis det var en commonJS-fil, ville det vært nøkkelordet.
import axios from ‘axios’
  • Basis-URLen for alle våre forespørsler til tipsbilk.net API vil være den samme for hvert endepunkt. Så du kan lagre den i en konstant.
const baseUrl="https://api.tipsbilk.net.com"
  • Angi URL-en du vil skrape og hente dataene fra.
let toScrapeURL = "https://developer.mozilla.org/en-US/"
  • Lag en asynkron funksjon og initialiser aksioene inne i den.
async function getData() {
    const res = await axios({})
    return res
}
  • I axios-konfigurasjonsalternativene bør du spesifisere metoden som post, URL-en sammen med endepunktet, en overskrift kjent som x-api-key hvis verdi vil være API-nøkkelen levert av tipsbilk.net og til slutt et dataobjekt som vil bli sendt til tipsbilk.net API. Du kan få API-nøkkelen din ved å gå til dash.tipsbilk.net.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
    }
})
  • Som du kan se, har dataobjektet følgende egenskaper:
    • url: URL-en til en nettside som må skrapes.
    • output: formatet der dataene presenteres for deg, enten innebygd som en streng eller i en HTML-fil. Innebygd streng er standardverdien.
    • enhet: typen enhet der du vil at nettsiden skal åpnes. Den aksepterer tre verdier, «desktop», «mobil» og «nettbrett», med «desktop» som standardverdi.
    • renderJS: en boolsk verdi for å spesifisere om du vil gjengi javascript eller ikke. Dette alternativet er nyttig når du arbeider med gjengivelse på klientsiden.
  • Ring den asynkrone funksjonen og få dataene. Du kan bruke en IIFE (Immediately Invoked Function Expression).
(async () => {
    const data = await getData()
    console.log(data.data)
})()
  • Svaret vil være noe slikt:
{
  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.tipsbilk.net.com/tests/web-scraping/pbn0v009vksiszv1cgz8o7tu.html'
}

Parsing HTML

For å analysere HTML, kan du bruke en npm-pakke kalt node-html-parser og for å trekke ut data fra HTML også. Hvis du for eksempel vil trekke ut tittelen fra en nettside, kan du gjøre:

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

Alternativt, hvis du bare vil ha metadataene fra et nettsted, kan du bruke tipsbilk.net sitt metadata API-endepunkt. Du trenger ikke engang å analysere HTML.

  Slik setter du opp din nye Mac

Fordeler med å bruke tipsbilk.net API

I enkeltsideapplikasjoner blir innholdet ofte ikke servergjengitt, i stedet blir det gjengitt av nettleseren ved hjelp av javascript. Så hvis du skraper den opprinnelige URL-en uten å gjengi javascriptet som trengs for å gjengi innholdet, får du ikke annet enn et beholderelement uten innhold. La meg vise deg et eksempel.

Her er et demonettsted bygget med react og vitejs. Skrap dette nettstedet ved å bruke tipsbilk.net API med renderJS-alternativet satt til usann. Hva fikk du?

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

Det er bare en rotbeholder uten innhold. Det er her renderJS-alternativet kommer til handling. Prøv nå å skrape det samme nettstedet med renderJS-alternativet satt til sant. Hva får du?

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

En annen fordel med å bruke tipsbilk.net API er at den lar deg bruke en roterende proxy slik at du kan sikre at ingen IP-blokkering vil forekomme av nettstedet. Wdzwdz API inkluderer proxy-funksjonen under premiumplanen.

  20 Online JSON-redigerings-, parser- og formateringsverktøy

Siste ord

Ved å bruke et nettskraping-API kan du kun fokusere på de skrapte dataene uten for mye teknisk problem. Bortsett fra det, tilbyr tipsbilk.net API også funksjoner som kontroll av brutte koblinger, meta-skraping, nettstedsstatistikk, skjermbildefangst, nettstedstatus og mye mer. Alt dette under ett enkelt API. Sjekk ut den offisielle dokumentasjonen til tipsbilk.net API for mer informasjon.