Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Web Scraping: come estrarre dati senza essere bannati

OSINT (Open Source Intelligence) e attività di Web Scraping: come si possono estrarre dati in modo efficace, rispettoso ed "invisibile"?
OSINT (Open Source Intelligence) e attività di Web Scraping: come si possono estrarre dati in modo efficace, rispettoso ed "invisibile"?
Link copiato negli appunti

I dati sono il nuovo petrolio. Che si tratti di investigazioni online, monitoraggio reputazionale, ricerca di mercato o semplice curiosità, la capacità di raccogliere informazioni in modo efficace e discreto è diventata fondamentale. Due discipline che si intrecciano perfettamente in questo contesto sono OSINT (Open Source Intelligence) e Web Scraping.

OSINT si riferisce alla raccolta di dati da fonti pubblicamente accessibili — siti web, social media, registri pubblici, motori di ricerca — mentre il Web Scraping è la tecnica pratica usata per automatizzare questa raccolta. Ma ogni volta che si cerca di automatizzare l'accesso ad un sito web, si corre il rischio di essere rilevati e bannati.

Quindi, come si possono estrarre dati in modo efficace, rispettoso ed "invisibile"? In questo articolo ti guiderò attraverso le strategie tecniche ed etiche per fare scraping a prova di ban, spiegando concetti, strumenti e codice.

Cos'è l'OSINT?

OSINT è l'arte di raccogliere informazioni da fonti pubbliche. È molto usata da:

  • Investigatori digitali e giornalisti.
  • Hacker etici e professionisti della sicurezza.
  • Aziende che fanno analisi di concorrenza o reputazione.
  • Agenzie di intelligence.

Le fonti OSINT includono:

  • Motori di ricerca.
  • Whois e DNS.
  • Social media.
  • Forum, blog e piattaforme di e-commerce.
  • Documenti pubblici (es. visure, registri imprese).
  • Siti web e database accessibili pubblicamente.

L'OSINT non è hacking. È legale se le fonti sono pubbliche e non si violano Termini di Servizio.

Il Web Scraping: l'automazione dell'OSINT

Il Web Scraping è una tecnica per estrarre contenuti da siti web. Gli strumenti leggono il codice HTML e selezionano le informazioni desiderate, ad esempio nomi, prezzi, indirizzi, recensioni, post, email. Librerie e strumenti comuni includono:

  • Node.js: Puppeteer, Axios, Cheerio.
  • Python: Requests, BeautifulSoup, Selenium, Scrapy.
  • Browser headless: Playwright, Puppeteer.
  • Proxy e rotating IP services: BrightData, ScraperAPI, etc.

Ecco un esempio di base in Node.js con Cheerio:

const axios = require('axios');
const cheerio = require('cheerio');

(async () => {
 	const res = await axios.get('https://example.com');
 	const $ = cheerio.load(res.data);
 	const titles = [];
 	$('h2.article-title').each((i, el) => {
 	 	titles.push($(el).text());
 	});

console.log(titles);
})();

Questo script estrae i titoli degli articoli da un sito web.

Perché i siti web bannano i bot e scoraggiano il Web Scraping

I siti internet proteggono i loro dati dallo scraping intensivo o non autorizzato per vari motivi:

  • Protezione del business model (dati esclusivi o a pagamento).
  • Carico del server: lo scraping massivo può rallentare un sito.
  • Rispetto della privacy degli utenti.
  • Sicurezza: per evitare lo scraping per phishing, spam e furti di contenuto.

I segnali che un bot lascia dietro di sé includono:

  • Accessi troppo rapidi e ripetitivi.
  • User-Agent sospetto o mancante.
  • Assenza di cookie o JavaScript.
  • IP riconosciuti come datacenter.
  • Nessuna interazione con CAPTCHA o elementi dinamici.

Tecniche per non farsi bloccare

Vediamo come fare scraping in modo discreto e duraturo. La prima strategia prevede di impostare un User-Agent realistico, molti siti bloccano infatti le richieste che non sembrano provenire da un browser.

await page.setUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64)...');

È poi utile usare dei Proxy Rotanti. Questo perché gli IP sono spesso bannati dopo un certo numero di richieste.

  • Usa proxy residenziali o mobile per sembrare un utente reale.
  • Servizi come BrightData o ScraperAPI offrono pool dinamici.

Il rate limiting ci ricorda inoltre che non è buona norma martellare i server. Meglio quindi effettuare delle pause tra le varie richieste.

function sleep(ms) {
 	return new Promise(resolve => setTimeout(resolve, ms));
}
await sleep(3000); // 3 secondi di attesa

Framework come Puppeteer o Playwright simulano un vero browser eseguendo JavaScript e caricando cookies.

const browser = await puppeteer.launch({ headless: false });

Ma è altrettanto importante gestire cookie e sessioni. Accedi quindi al sito come un utente reale, salvando i cookie per sessioni successive.

const cookies = await page.cookies();
fs.writeFileSync('cookies.json', JSON.stringify(cookies));

Evita infine reCAPTCHA e blocchi dei bot.

  • Fai click e scroll casuali.
  • Usa servizi di riconoscimento CAPTCHA.
  • Analizza i robots.txt.

Estrarre Tweet da una pagina pubblica

Supponiamo di voler analizzare i tweet pubblici di un profilo, senza API.

const puppeteer = require('puppeteer');
(async () => {
 	const browser = await puppeteer.launch({ headless: true });
 	const page = await browser.newPage();

 	await page.setUserAgent('Mozilla/5.0 ...');
 	await page.goto('https://twitter.com/somepublicprofile', { waitUntil: 'networkidle2' });
 	await page.waitForSelector('article');
 	const tweets = await page.evaluate(() => {
 	 	const nodes = document.querySelectorAll('article div[lang]');
 	 	return Array.from(nodes).map(el => el.innerText);
 	});

 	console.log(tweets);
 	await browser.close();
})();

Questo script apre X, attende i contenuti, e raccoglie i tweet visibili. Attenzione: i siti cambiano spesso struttura, quindi bisogna aggiornare frequentemente il selettore.

Quando è legale (e quando no)

Sono legali:

  • Raccolta di dati pubblici.
  • Scraping etico, con pause e limiti.
  • Ricerca, analisi accademica o testing.

Sono illegali o rischiosi:

  • Superare barriere di sicurezza (CAPTCHA, login obbligatori).
  • Scraping di dati personali senza consenso.
  • Clonazione massiva di contenuti protetti.
  • Vendita o uso commerciale non autorizzato.

Consiglio: Leggi i TOS del sito. Alcuni vietano esplicitamente lo scraping automatizzato.

OSINT Tools consigliati

Per chi vuole andare oltre il codice, ecco strumenti OSINT efficaci:

  • Shodan: scansioni dispositivi esposti.
  • SpiderFoot: automazione OSINT.
  • Maltego: visualizzazione dati relazionali.
  • theHarvester: raccolta email e sottodomini.
  • Wayback Machine: pagine archiviate.

Conclusione

Fare scraping in modo efficace, rispettoso e non invasivo è possibile. Le tecniche che abbiamo visto — dalla gestione intelligente degli IP alla simulazione del comportamento utente — sono fondamentali per ogni sviluppatore o analista OSINT. Ma il vero valore non sta solo nel codice: sta nell'etica con cui usiamo queste tecnologie.

L'OSINT è uno strumento potente per raccogliere dati a fini investigativi, aziendali, educativi o di ricerca. Ma ogni volta che interagiamo con una piattaforma online dobbiamo ricordarci che, dall'altra parte, c'è chi quei dati li ha organizzati e resi disponibili, spesso a caro prezzo.

Raccogliere dati pubblici va bene, ma con intelligenza, discrezione e responsabilità.

Ti consigliamo anche