Scraping Web con Node JS nel 2023

Scraping Web con Node JS nel 2023

Nodo di origine: 2022732

Stai cercando di estrarre dati da una pagina web?

Vai su Nanonets raschietto del sito web, Aggiungi l'URL e fai clic su "Scrape" e scarica immediatamente il testo della pagina Web come file. Provalo adesso gratuitamente.

Scraper del sito web di Nanonets


Che cos'è il web scraping e i suoi vantaggi?

Lo scraping Web viene utilizzato per estrarre automaticamente i dati dalle pagine Web su larga scala. Il web scraping viene eseguito per convertire i dati in strutture HTML complesse in un formato strutturato come un foglio di calcolo o un database e utilizzato per vari scopi come ricerca, analisi e automazione.

Ecco alcuni dei motivi per cui le persone usano il web scraping:

  • Estrai i dati delle pagine web in modo efficiente per analisi avanzate.
  • Tieni d'occhio gli sviluppi del sito Web della concorrenza e tieni d'occhio i cambiamenti nelle loro offerte di prodotti, tattiche o prezzi.
  • Raschiare i lead o i dati delle e-mail da LinkedIn o da un'altra directory.
  • Automatizza attività come l'inserimento di dati, la compilazione di moduli e altre attività ripetitive, risparmiando tempo e migliorando l'efficienza.

Perché dovresti usare Node.js per il web scraping?

Node.js è ampiamente utilizzato in quanto è una piattaforma leggera, ad alte prestazioni ed efficiente. Ecco alcuni motivi per cui node.js è un'ottima scelta per il web scraping:

  • Node.js può gestire più richieste di web scraping in parallelo.
  • Ha una vasta comunità che fornisce supporto e crea significative librerie di web scraping.
  • Node.js è multipiattaforma, il che lo rende una scelta versatile per i progetti di web scraping
  • Node.js è facile da imparare, soprattutto se conosci già JavaScript
  • Node.js ha il supporto integrato per le richieste HTTP, semplificando il recupero e l'analisi delle pagine HTML dai siti web
  • Node.js è altamente scalabile, il che è importante per il web scraping durante l'elaborazione di un grande volume di dati

Stai cercando di estrarre dati da una pagina web?

Vai su Nanonets raschietto del sito web, Aggiungi l'URL e fai clic su "Scrape" e scarica immediatamente il testo della pagina Web come file. Provalo adesso gratuitamente.

Scraper del sito web di Nanonets


Come eseguire lo scraping delle pagine Web utilizzando Node JS?

Passo 1 Configurazione dell'ambiente:

Devi installare node.js se non l'hai già fatto. Puoi scaricarlo utilizzando il sito Web ufficiale.

Passo 2 Installazione dei pacchetti necessari per il web scraping con Node.js:

Node.js ha più opzioni per il web scraping come Cheerio, Puppeteer e request. Puoi installarli facilmente usando il seguente comando.

npm install cheerio
npm install puppeteer
npm install request

Passaggio 3 Impostazione della directory del progetto:

Devi creare una nuova directory per il nuovo progetto. Quindi vai al prompt dei comandi per creare un nuovo file per archiviare il tuo codice di web scraping NodeJS.

Puoi creare una nuova directory e un nuovo file usando il seguente comando:

mkdir my-web-scraper
cd my-web-scraper
touch scraper.js

Passaggio 4 Effettuare richieste HTTP con Node.js:

Per eseguire lo scraping delle pagine Web, è necessario effettuare richieste HTTP. Ora, Node.js ha un modulo http integrato. Questo rende facile fare richieste. Puoi anche utilizzare axios o request per effettuare una richiesta.

Ecco il codice per effettuare richieste http con node.js

const http = require('http');
const url = 'http://example.com';
http.get(url, (res) => {
let data = '';
res.on('data', (chunk) => {
data += chunk;
});
res.on('end', () => {
console.log(data);
});
});

Sostituisci http.//example.com con l'URL di tua scelta per raschiare le pagine web,

Passaggio 5 Scraping HTML con Node.js:

Una volta ottenuto il contenuto HTML di una pagina Web, è necessario analizzarlo per estrarre i dati necessari. Sono disponibili diverse librerie di terze parti per l'analisi dell'HTML in Node.js, come Cheerio e JSDOM.

Ecco uno snippet di codice di esempio che utilizza Cheerio per analizzare l'HTML ed estrarre i dati:

const cheerio = require('cheerio');
const request = require('request');
const url = 'https://example.com';
request(url, (error, response, html) => {
if (!error && response.statusCode == 200) {
const $ = cheerio.load(html);
const title = $('title').text();
const firstParagraph = $('p').first().text();
console.log(title);
console.log(firstParagraph);
}
});

Questo codice utilizza la libreria delle richieste per recuperare il contenuto HTML della pagina Web in url e quindi utilizza Cheerio per analizzare l'HTML ed estrarre il titolo e il primo paragrafo.

Come gestire javascript e contenuto dinamico utilizzando Node.js?

Molte pagine Web moderne utilizzano JavaScript per eseguire il rendering di contenuti dinamici, rendendone difficile l'estrazione. Per gestire il rendering JavaScript, puoi utilizzare browser headless come Puppeteer e Playwright, che ti consentono di simulare un ambiente browser e di eseguire lo scraping di contenuti dinamici.

Ecco uno snippet di codice di esempio che utilizza Puppeteer per eseguire lo scraping di una pagina Web che esegue il rendering del contenuto con JavaScript:

const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
const title = await page.$eval('title', el => el.textContent);
const firstParagraph = await page.$eval('p', el => el.textContent);
console.log(title);
console.log(firstParagraph);
await browser.close();
})();

Questo codice utilizza Puppeteer per avviare un browser headless, accedere alla pagina Web all'URL ed estrarre il titolo e il primo paragrafo. Il metodo page.$eval() seleziona ed estrae i dati dagli elementi HTML.

Ecco alcune librerie che puoi utilizzare per raschiare facilmente le pagine Web utilizzando NodeJS:

Ciao: è un'implementazione veloce, flessibile e leggera del core jQuery progettata per il lato server.

JSDOM: è un'implementazione JavaScript puro del DOM per Node.js. Fornisce un modo per creare un ambiente DOM in Node.js e manipolarlo con un'API standard.

Burattinaio: è una libreria Node.js che fornisce un'API di alto livello per controllare Chrome o Chromium headless. Può essere utilizzato per web scraping, test automatizzati, scansione e rendering.

Best practice per il web scraping con Node.js

Ecco alcune best practice da seguire quando si utilizza Node.js per il web scraping:

  • Prima di eseguire lo scraping di un sito Web, leggi i loro termini di utilizzo. Assicurati che la pagina web non abbia restrizioni sul web scraping o sulla frequenza di scraping delle pagine web.
  • Limita il numero di richieste HTTP per evitare di sovraccaricare il sito Web controllando la frequenza delle richieste.
  • Imposta intestazioni appropriate nelle tue richieste HTTP per imitare il comportamento di un utente normale.
  • Cache pagine web e dati estratti per ridurre il carico sul sito web.
  • Il web scraping può essere soggetto a errori a causa della complessità e della variabilità dei siti web.
  • Monitora e regola la tua attività di scraping e regola la limitazione della velocità, le intestazioni e altre impostazioni secondo necessità.

Stai cercando di estrarre dati da una pagina web?

Vai su Nanonets raschietto del sito web, Aggiungi l'URL e fai clic su "Scrape" e scarica immediatamente il testo della pagina Web come file. Provalo adesso gratuitamente.

Scraper del sito web di Nanonets


Timestamp:

Di più da AI e apprendimento automatico