Kā nokasīt vietni, izmantojot pcdream.lt Web Scraping API

Tīmekļa skrāpēšana ir process, kas ļauj iegūt noderīgu informāciju no globālā tīmekļa. Google meklēšanas laikā tīmekļa rāpuļprogramma (robots), ti, rāpuļprogramma, pārlūko gandrīz visu tīmekļa saturu un atlasa jums atbilstošo.

Šī ideja, ka informācijai vai zināšanām ir jābūt pieejamai ikvienam, noveda pie globālā tīmekļa veidošanās. Tomēr jūsu meklētajiem datiem ir jābūt atļautiem publiskai lietošanai.

Kā tīmekļa nokasīšana ir noderīga?

Mēs dzīvojam datu laikmetā. Neapstrādātus datus var pārvērst noderīgā informācijā, ko var izmantot lielākam mērķim, izmantojot tīmekļa nokasīšanu. To var izmantot, lai analizētu un pētītu produkta lietotājus, lai uzlabotu produktu, citiem vārdiem sakot, lai izveidotu atgriezeniskās saites cilpu.

E-komercijas uzņēmumi to var izmantot, lai izpētītu konkurentu cenu noteikšanas stratēģijas un attiecīgi izstrādātu savas. Tīmekļa nokasīšanu var izmantot arī laikapstākļu un ziņu ziņošanai.

Izaicinājumi

#1. IP ierobežojums

Vairākas vietnes ierobežo pieprasījumu skaitu, ko varat veikt, lai noteiktā laika intervālā iegūtu vietnes datus, nosakot jūsu IP adresi vai ģeogrāfisko atrašanās vietu. Viņi to dara, lai novērstu ļaunprātīgus uzbrukumus savai vietnei.

#2. Captcha

Captchas patiesībā dara, lai atšķirtu īstu cilvēku un robotu, kas mēģina piekļūt vietnei. Vietnes to izmanto, lai novērstu surogātpastu vietnē, kā arī kontrolētu skrāpju skaitu vietnē.

#3. Renderēšana klienta pusē

Tas ir viens no lielākajiem šķēršļiem tīmekļa skrāpjiem. Mūsdienu tīmekļa vietnes izmanto priekšgala ietvarus, kas spēj izveidot vienas lapas lietojumprogrammas. Lielākajai daļai vienas lapas lietojumprogrammu nav servera renderēta satura. Tā vietā viņi ģenerē saturu pēc vajadzības, izmantojot klienta puses JavaScript. Tādējādi skrāpjiem ir grūti uzzināt, kāds ir tīmekļa lapas saturs. Lai iegūtu saturu, jums ir jāatveido klienta puses JavaScript.

  Varat atkārtoti izdzīvot GameCube modernā televizorā, un tas ir brīnišķīgi

pcdream.lt API

Tīmekļa skrāpēšanas API atrisina lielāko daļu problēmu, ar kurām jāsaskaras, veicot tīmekļa nokopšanu, jo tā visu apstrādā jūsu vietā. Izpētīsim pcdream.lt API un uzzināsim, kā varat to izmantot tīmekļa skrāpēšanai.

pcdream.lt API jums piedāvā vienkāršu trīspakāpju procesu:

  • Norādiet URL, ko nokasīt
  • Nodrošiniet dažas konfigurācijas opcijas
  • Iegūstiet datus

Tas var nokasīt tīmekļa lapu jūsu vietā un pēc tam atgriezt neapstrādātus HTML datus kā virkni vai HTML failā, kuram var piekļūt, izmantojot saiti, atkarībā no tā, kurš veids jums ir piemērots.

Izmantojot API

Šajā apmācībā jūs uzzināsit, kā izmantot pcdream.lt API, izmantojot NodeJS — javascript izpildlaika vidi. Instalējiet NodeJS savā sistēmā, ja vēl neesat to izdarījis, pirms turpināt.

  • Palaidiet komandu npm init -y terminālī pašreizējā mapē vai direktorijā. Tas jums izveidos failu package.json.
  • Failā package.json mainiet galvenās atslēgas vērtību uz index.mjs, ja pēc noklusējuma tā ir kaut kas cits. Varat arī pievienot atslēgas veidu un iestatīt tā vērtību, kas vienāda ar moduli.
{
  “type”: “module”
}
  • Pievienojiet atkarību ar nosaukumu axios, terminālī izpildot komandu npm i axios. Šī atkarība palīdz mums veikt ieneses pieprasījumus konkrētiem galapunktiem.
  • Jūsu package.json vajadzētu izskatīties apmēram šādi:
{
  "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"
  }
}
  • Importējiet axios failā index.mjs tieši šādi. Šeit tiek izmantots importēšanas atslēgvārds, jo tas ir ES modulis. Ja tas būtu commonJS fails, tas būtu bijis nepieciešamais atslēgvārds.
import axios from ‘axios’
  • Pamata URL visiem mūsu pieprasījumiem pcdream.lt API būs vienāds katram galapunktam. Tātad, jūs varat to uzglabāt konstantā.
const baseUrl="https://api.pcdream.lt.com"
  • Norādiet URL, no kura vēlaties iegūt datus.
let toScrapeURL = "https://developer.mozilla.org/en-US/"
  • Izveidojiet asinhrono funkciju un inicializējiet axis tajā.
async function getData() {
    const res = await axios({})
    return res
}
  • Axios konfigurācijas opcijās jums jānorāda metode kā post, URL kopā ar beigu punktu, galvene, kas pazīstama kā x-api-key, kuras vērtība būs API atslēga, ko nodrošina pcdream.lt, un, visbeidzot, datu objekts, kas tiks nosūtīts. uz pcdream.lt API. API atslēgu varat iegūt, apmeklējot vietni dash.pcdream.lt.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
    }
})
  • Kā redzat, datu objektam ir šādas īpašības:
    • url: tās tīmekļa lapas URL, kas ir jānokasa.
    • izvade: formāts, kādā dati tiek parādīti jums vai nu iekļauti kā virkne, vai HTML failā. Iekļautā virkne ir noklusējuma vērtība.
    • ierīce: ierīces veids, kurā vēlaties atvērt tīmekļa lapu. Tas pieņem trīs vērtības: ‘galddators’, ‘mobilais’ un ‘planšetdators’, un ‘desktop’ ir noklusējuma vērtība.
    • renderJS: Būla vērtība, lai norādītu, vai vēlaties renderēt javascript vai nē. Šī opcija ir noderīga, ja strādājat ar klienta puses renderēšanu.
  • Izsauciet asinhrono funkciju un iegūstiet datus. Varat izmantot IIFE (tūlīt izsauktas funkcijas izteiksmi).
(async () => {
    const data = await getData()
    console.log(data.data)
})()
  • Atbilde būs apmēram šāda:
{
  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.pcdream.lt.com/tests/web-scraping/pbn0v009vksiszv1cgz8o7tu.html'
}

HTML parsēšana

Lai parsētu HTML, varat izmantot npm pakotni ar nosaukumu node-html-parser, kā arī iegūt datus no HTML. Piemēram, ja vēlaties izvilkt virsrakstu no tīmekļa lapas, varat rīkoties šādi:

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

Alternatīvi, ja vēlaties iegūt metadatus tikai no vietnes, varat izmantot pcdream.lt metadatu API galapunktu. Jums pat nav jāparsē HTML.

  Kā iestatīt Quassel Core Ubuntu serverī

Wdzwdz API lietošanas priekšrocības

Vienas lapas lietojumprogrammās saturs bieži netiek renderēts serverī, tā vietā to atveido pārlūkprogramma, izmantojot JavaScript. Tātad, ja nokasīsit sākotnējo URL, neatveidojot satura renderēšanai nepieciešamo javascript, jūs neiegūsit tikai konteinera elementu bez satura. Ļaujiet man parādīt jums piemēru.

Šeit ir demonstrācijas vietne, kas izveidota, izmantojot react un vitejs. Nokopējiet šo vietni, izmantojot pcdream.lt API ar renderJS opciju, kas iestatīta uz false. Ko tu dabūji?

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

Ir tikai saknes konteiners bez satura. Šeit darbojas opcija renderJS. Tagad mēģiniet nokasīt to pašu vietni ar renderJS opciju, kas iestatīta uz True. Ko jūs saņemat?

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

Vēl viens pcdream.lt API lietošanas ieguvums ir tas, ka tas ļauj izmantot rotējošu starpniekserveri, lai jūs varētu nodrošināt, ka vietne nebloķēs IP. Wdzwdz API savā premium plānā ietver starpniekservera funkciju.

  20 labākā After Effects alternatīva

Nobeiguma vārdi

Izmantojot tīmekļa nokopšanas API, varat koncentrēties tikai uz izkoptajiem datiem bez pārāk lielām tehniskām problēmām. Bez tam pcdream.lt API nodrošina arī tādas funkcijas kā bojātu saišu pārbaude, meta nokasīšana, vietņu ielādes statistika, ekrānuzņēmumu tveršana, vietnes statuss un daudz kas cits. Tas viss vienā API. Plašāku informāciju skatiet oficiālajā pcdream.lt API dokumentācijā.