
Libreria Node.js per web scraping e automazione del browser per creare crawler affidabili con supporto HTTP e browser headless, rotazione dei proxy e fingerprinting simile a quello umano.
Crawlee copre il tuo crawling e scraping end-to-end e ti aiuta a costruire scraper affidabili. Velocemente.
I tuoi crawler appariranno simili a esseri umani e voleranno sotto il radar delle moderne protezioni anti-bot anche con la configurazione predefinita. Crawlee ti fornisce gli strumenti per scansionare il web alla ricerca di link, estrarre dati e archiviarli su disco o nel cloud, rimanendo configurabile per adattarsi alle esigenze del tuo progetto.
Crawlee è disponibile come pacchetto NPM crawlee.
👉 Visualizza la documentazione completa, le guide e gli esempi sul sito del progetto Crawlee 👈
Preferisci 🐍 Python invece di JavaScript? 👉 Dai un'occhiata a Crawlee for Python 👈.
Ti consigliamo di visitare il tutorial introduttivo nella documentazione di Crawlee per maggiori informazioni.
Crawlee richiede Node.js 22.13 o superiore.
Il modo più rapido per provare Crawlee è utilizzare la CLI di Crawlee e scegliere l'esempio introduttivo. La CLI installerà tutte le dipendenze necessarie e aggiungerà il codice boilerplate con cui giocare.
npx crawlee create my-crawler
cd my-crawler
npm start
Se preferisci aggiungere Crawlee nel tuo progetto, prova l'esempio seguente. Poiché utilizza PlaywrightCrawler, dobbiamo anche installare Playwright. Non è incluso in Crawlee per ridurre le dimensioni dell'installazione.
npm install crawlee playwright
import { PlaywrightCrawler, Dataset } from 'crawlee';
// PlaywrightCrawler crawls the web using a headless
// browser controlled by the Playwright library.
const crawler = new PlaywrightCrawler({
// Use the requestHandler to process each of the crawled pages.
async requestHandler({ request, page, enqueueLinks, log }) {
const title = await page.title();
log.info(`Title of ${request.loadedUrl} is '${title}'`);
// Save results as JSON to ./storage/datasets/default
await Dataset.pushData({ title, url: request.loadedUrl });
// Extract links from the current page
// and add them to the crawling queue.
await enqueueLinks();
},
// Uncomment this option to see the browser window.
// headless: false,
});
// Add first URL to the queue and start the crawl.
await crawler.run(['https://crawlee.dev']);
Per impostazione predefinita, Crawlee memorizza i dati in ./storage nella directory di lavoro corrente. Puoi sovrascrivere questa directory tramite la configurazione di Crawlee. Per i dettagli, consulta la guida alla configurazione, Request storage e Result storage.
Forniamo build beta automatizzate per ogni modifica al codice unita in Crawlee. Puoi trovarle nella lista delle release su npm. Se desideri testare nuove funzionalità o correzioni di bug prima che le rilasciamo, sentiti libero di installare una build beta in questo modo:
npm install crawlee@next
Se utilizzi anche l'Apify SDK, devi specificare gli override delle dipendenze nel tuo file package.json in modo da non ritrovarti con più versioni di Crawlee installate:
{
"overrides": {
"apify": {
"@crawlee/core": "$crawlee",
"@crawlee/types": "$crawlee",
"@crawlee/utils": "$crawlee"
}
}
}
Crawlee è open-source e funziona ovunque, ma poiché è sviluppato da Apify, è facile configurarlo sulla piattaforma Apify ed eseguirlo nel cloud. Visita il sito dell'Apify SDK per saperne di più sul deploy di Crawlee sulla piattaforma Apify.
Se trovi bug o problemi con Crawlee, invia una issue su GitHub. Per domande, puoi chiedere su Stack Overflow, nelle GitHub Discussions oppure puoi unirti al nostro server Discord.
I tuoi contributi al codice sono benvenuti, e sarai lodato in eterno! Se hai idee per miglioramenti, invia una issue o crea una pull request. Per le linee guida sui contributi e il codice di condotta, consulta CONTRIBUTING.md.
Questo progetto è distribuito sotto la Licenza Apache 2.0 - consulta il file LICENSE.md per i dettagli.