03/28/2024

Cum să răzuiți site-ul web folosind API-ul tipstrick.ro Web Scraping

Web scraping este un proces de extragere a informațiilor utile de pe World Wide Web. În timpul unei căutări pe Google, un crawler web (bot), adică crawler-ul, parcurge aproape tot conținutul de pe web și alege ceea ce este relevant pentru dvs.

Această idee că informațiile sau cunoștințele ar trebui să fie accesibile tuturor a dus la formarea rețelei mondiale. Cu toate acestea, datele pe care le căutați trebuie să fie permise pentru uz public.

Cum este utilă web scraping?

Trăim în era datelor. Datele brute pot fi convertite în informații utile care pot fi folosite pentru a servi unui scop mai mare cu ajutorul web scraping. Poate fi folosit pentru a analiza și studia utilizatorii unui produs pentru a îmbunătăți produsul, cu alte cuvinte, pentru a crea o buclă de feedback.

Companiile de comerț electronic îl pot folosi pentru a studia strategiile de prețuri ale concurenților și, în consecință, pentru a le elabora pe ale lor. Web scraping poate fi folosit și pentru reportaje despre vreme și știri.

Provocări

#1. Restricție IP

Mai multe site-uri limitează numărul de solicitări pe care le poți face pentru a obține datele site-ului într-un anumit interval de timp prin detectarea adresei tale IP sau a geolocalizării. Ei fac acest lucru pentru a preveni atacurile rău intenționate pe site-ul lor.

#2. Captcha

Distingerea între un om real și un bot care încearcă să acceseze site-ul web este ceea ce fac de fapt captcha-urile. Site-urile web îl folosesc pentru a preveni spam-ul pe site, precum și pentru a controla numărul de scrapers de pe site.

#3. Redare pe partea clientului

Acesta este unul dintre cele mai mari obstacole pentru racletele web. Site-urile web moderne folosesc cadre frontend care sunt capabile să creeze aplicații cu o singură pagină. Majoritatea aplicațiilor cu o singură pagină nu au conținut redat de server. În schimb, generează conținutul în funcție de nevoi, utilizând javascript la nivelul clientului. Acest lucru face dificil pentru scrapers să știe care este conținutul unei pagini web. Pentru a obține conținutul, trebuie să redați niște javascript la nivelul clientului.

  7 platforme de cadouri pentru angajați pentru a asigura un loc de muncă mai fericit

API-ul tipstrick.ro

Un API de web scraping rezolvă majoritatea provocărilor cu care se confruntă în timpul efectuării web scraping, deoarece se ocupă de totul pentru tine. Să explorăm API-ul tipstrick.ro și să vedem cum îl puteți folosi pentru web scraping.

API-ul tipstrick.ro are un proces simplu în trei pași pentru tine:

  • Furnizați o adresă URL de răzuit
  • Furnizați câteva opțiuni de configurare
  • Obțineți datele

Poate să răzuiască pagina web pentru dvs. și apoi să returneze date HTML brute ca șir sau într-un fișier HTML care poate fi accesat printr-un link, indiferent de modul care funcționează pentru dvs.

Folosind API-ul

În acest tutorial, veți învăța cum să utilizați API-ul tipstrick.ro folosind NodeJS – un mediu de rulare javascript. Instalați NodeJS pe sistemul dvs. dacă nu ați făcut-o înainte de a continua.

  • Rulați comanda npm init -y în terminal în folderul sau directorul curent. Acesta va crea un fișier package.json pentru dvs.
  • În interiorul fișierului package.json, modificați valoarea cheii principale la index.mjs dacă este altceva în mod implicit. Alternativ, puteți adăuga, de asemenea, un tip de cheie și setați valoarea acestuia egală cu modulul.
{
  “type”: “module”
}
  • Adăugați o dependență numită axios rulând comanda npm i axios în terminal. Această dependență ne ajută să facem cereri de preluare către anumite puncte finale.
  • Package.json ar trebui să arate cam așa:
{
  "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"
  }
}
  • Importați axios în fișierul index.mjs la fel. Aici, cuvântul cheie import este folosit deoarece este un modul ES. Dacă ar fi fost un fișier commonJS, ar fi fost cuvântul cheie require.
import axios from ‘axios’
  • Adresa URL de bază pentru toate solicitările noastre către API-ul tipstrick.ro va fi aceeași pentru fiecare punct final. Deci, îl puteți stoca într-o constantă.
const baseUrl="https://api.tipstrick.ro.com"
  • Specificați adresa URL pe care doriți să o răzuiți și de la care obțineți datele.
let toScrapeURL = "https://developer.mozilla.org/en-US/"
  • Creați o funcție asincronă și inițializați axios în interiorul acesteia.
async function getData() {
    const res = await axios({})
    return res
}
  • În opțiunile de configurare axios, ar trebui să specificați metoda ca post, adresa URL împreună cu punctul final, un antet cunoscut sub numele de x-api-key a cărui valoare va fi cheia API furnizată de tipstrick.ro și, în sfârșit, un obiect de date care va fi trimis la API-ul tipstrick.ro. Puteți obține cheia API accesând dash.tipstrick.ro.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
    }
})
  • După cum puteți vedea, obiectul de date are următoarele proprietăți:
    • url: adresa URL a unei pagini web care trebuie eliminată.
    • ieșire: formatul în care vă sunt prezentate datele, fie în linie ca șir, fie într-un fișier HTML. Șirul în linie este valoarea implicită.
    • dispozitiv: tipul de dispozitiv în care doriți să fie deschisă pagina web. Acceptă trei valori, „desktop”, „mobile” și „tablet”, „desktop” fiind valoarea implicită.
    • renderJS: o valoare booleană pentru a specifica dacă doriți să randați javascript sau nu. Această opțiune este utilă atunci când aveți de-a face cu randarea pe partea clientului.
  • Apelați funcția asincronă și obțineți datele. Puteți utiliza un IIFE (Expresie Funcție Invocată Imediat).
(async () => {
    const data = await getData()
    console.log(data.data)
})()
  • Răspunsul va fi cam așa:
{
  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.tipstrick.ro.com/tests/web-scraping/pbn0v009vksiszv1cgz8o7tu.html'
}

Analizarea HTML

Pentru a analiza HTML, puteți utiliza un pachet npm numit node-html-parser și pentru a extrage date și din HTML. De exemplu, dacă doriți să extrageți titlul dintr-o pagină web, puteți face:

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

Ca alternativă, dacă doriți doar metadatele de pe un site web, puteți utiliza punctul final al API-ului de metadate ale tipstrick.ro. Nici măcar nu trebuie să analizați HTML.

  Cum să anulați FuboTV pe Roku

Beneficiile utilizării API-ului tipstrick.ro

În aplicațiile cu o singură pagină, conținutul nu este deseori redat pe server, ci este redat de browser folosind javascript. Deci, dacă răzuiți adresa URL inițială fără să redați javascriptul necesar pentru a reda conținutul, nu obțineți decât un element container fără conținut în el. Permiteți-mi să vă arăt un exemplu.

Iată un site demonstrativ creat folosind react și vitejs. Scrape acest site folosind API-ul tipstrick.ro cu opțiunea renderJS setată la false. Ce ai primit?

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

Există doar un container rădăcină fără conținut. Aici intră în acțiune opțiunea renderJS. Acum încercați să răzuiți același site cu opțiunea renderJS setată la true. Ce obții?

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

Un alt avantaj al utilizării API-ului tipstrick.ro este că vă permite să utilizați un proxy rotativ, astfel încât să vă asigurați că site-ul web nu va bloca IP. API-ul tipstrick.ro include funcția proxy în planul său premium.

Cuvinte finale

Utilizarea unui API de scraping web vă permite să vă concentrați numai pe datele răzuite fără prea multe probleme tehnice. În afară de asta, API-ul tipstrick.ro oferă, de asemenea, funcții precum verificarea linkurilor întrerupte, meta scraping, statistici de încărcare a site-ului web, captură de captură de ecran, starea site-ului și multe altele. Toate acestea sub un singur API. Consultați documentația oficială a API-ului tipstrick.ro pentru mai multe informații.

  Ce este o ramă de ecran și de ce contează dimensiunea acestuia?

x