|
| 1 | +## 🚀 **Cerchi un modo ancora più veloce e semplice per fare scraping su larga scala (con sole 5 righe di codice)?** Scopri la nostra versione potenziata su [**ScrapeGraphAI.com**](https://scrapegraphai.com/?utm_source=github&utm_medium=readme&utm_campaign=oss_cta&utm_content=top_banner)! 🚀 |
| 2 | + |
| 3 | +--- |
| 4 | + |
| 5 | +# 🕷️ ScrapeGraphAI: You Only Scrape Once |
| 6 | + |
| 7 | +<p align="center"> |
| 8 | + <a href="https://scrapegraphai.com"> |
| 9 | + <img src="https://raw.githubusercontent.com/ScrapeGraphAI/Scrapegraph-ai/main/media/banner.png" alt="ScrapeGraphAI" style="width: 100%;"> |
| 10 | + </a> |
| 11 | +</p> |
| 12 | + |
| 13 | +[English](https://github.com/ScrapeGraphAI/Scrapegraph-ai/blob/main/README.md) | [中文](https://github.com/ScrapeGraphAI/Scrapegraph-ai/blob/main/docs/chinese.md) | [日本語](https://github.com/ScrapeGraphAI/Scrapegraph-ai/blob/main/docs/japanese.md) |
| 14 | +| [한국어](https://github.com/ScrapeGraphAI/Scrapegraph-ai/blob/main/docs/korean.md) |
| 15 | +| [Русский](https://github.com/ScrapeGraphAI/Scrapegraph-ai/blob/main/docs/russian.md) | [Türkçe](https://github.com/ScrapeGraphAI/Scrapegraph-ai/blob/main/docs/turkish.md) |
| 16 | +| [Deutsch](https://www.readme-i18n.com/ScrapeGraphAI/Scrapegraph-ai?lang=de) |
| 17 | +| [Español](https://www.readme-i18n.com/ScrapeGraphAI/Scrapegraph-ai?lang=es) |
| 18 | +| [français](https://www.readme-i18n.com/ScrapeGraphAI/Scrapegraph-ai?lang=fr) |
| 19 | +| [Português](https://github.com/ScrapeGraphAI/Scrapegraph-ai/blob/main/docs/portuguese.md) |
| 20 | +| [Italiano](https://github.com/ScrapeGraphAI/Scrapegraph-ai/blob/main/docs/italian.md) |
| 21 | + |
| 22 | +[](https://pepy.tech/projects/scrapegraphai) |
| 23 | +[](https://github.com/pylint-dev/pylint) |
| 24 | +[](https://github.com/ScrapeGraphAI/Scrapegraph-ai/actions/workflows/code-quality.yml) |
| 25 | +[](https://github.com/ScrapeGraphAI/Scrapegraph-ai/actions/workflows/codeql.yml) |
| 26 | +[](https://opensource.org/licenses/MIT) |
| 27 | +[](https://discord.gg/gkxQDAjfeX) |
| 28 | + |
| 29 | +[](https://scrapegraphai.com/?utm_source=github&utm_medium=readme&utm_campaign=api_banner&utm_content=api_banner_image) |
| 30 | + |
| 31 | +<p align="center"> |
| 32 | +<a href="https://trendshift.io/repositories/15078" target="_blank"><img src="https://trendshift.io/api/badge/repositories/15078" alt="ScrapeGraphAI%2FScrapegraph-ai | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a> |
| 33 | +<p align="center"> |
| 34 | + |
| 35 | +[ScrapeGraphAI](https://scrapegraphai.com) è una libreria Python per il *web scraping* che utilizza LLM e logica basata sui grafi per creare pipeline di scraping per siti web e documenti locali (XML, HTML, JSON, Markdown, ecc.). |
| 36 | + |
| 37 | +Indica semplicemente quali informazioni vuoi estrarre e la libreria lo farà per te! |
| 38 | + |
| 39 | +<p align="center"> |
| 40 | + <img src="https://raw.githubusercontent.com/ScrapeGraphAI/Scrapegraph-ai/main/docs/assets/sgai-hero.png" alt="ScrapeGraphAI Hero" style="width: 100%;"> |
| 41 | +</p> |
| 42 | + |
| 43 | +## 🚀 Integrazioni |
| 44 | + |
| 45 | +ScrapeGraphAI offre integrazioni con i framework e gli strumenti più diffusi per potenziare le tue capacità di scraping. Che tu stia sviluppando in Python o Node.js, usando framework LLM o piattaforme no-code, offriamo un'ampia gamma di opzioni di integrazione. |
| 46 | + |
| 47 | +Puoi trovare ulteriori informazioni al seguente [link](https://scrapegraphai.com) |
| 48 | + |
| 49 | +**Integrazioni**: |
| 50 | +- **API**: [Documentazione](https://docs.scrapegraphai.com/introduction) |
| 51 | +- **SDK**: [Python](https://docs.scrapegraphai.com/sdks/python), [Node](https://docs.scrapegraphai.com/sdks/javascript) |
| 52 | +- **Framework LLM**: [Langchain](https://docs.scrapegraphai.com/integrations/langchain), [Llama Index](https://docs.scrapegraphai.com/integrations/llamaindex), [Crew.ai](https://docs.scrapegraphai.com/integrations/crewai), [Agno](https://docs.scrapegraphai.com/integrations/agno), [CamelAI](https://github.com/camel-ai/camel) |
| 53 | +- **Framework Low-code**: [Pipedream](https://pipedream.com/apps/scrapegraphai), [Bubble](https://bubble.io/plugin/scrapegraphai-1745408893195x213542371433906180), [Zapier](https://zapier.com/apps/scrapegraphai/integrations), [n8n](http://localhost:5001/dashboard), [Dify](https://dify.ai), [Toolhouse](https://app.toolhouse.ai/mcp-servers/scrapegraph_smartscraper) |
| 54 | +- **Server MCP**: [Link](https://smithery.ai/server/@ScrapeGraphAI/scrapegraph-mcp) |
| 55 | + |
| 56 | +## 🚀 Installazione rapida |
| 57 | + |
| 58 | +La pagina di riferimento per scrapegraph-ai è disponibile sulla pagina ufficiale di PyPI: [pypi](https://pypi.org/project/scrapegraphai/). |
| 59 | + |
| 60 | +```bash |
| 61 | +pip install scrapegraphai |
| 62 | + |
| 63 | +# IMPORTANTE (per il recupero del contenuto dei siti web) |
| 64 | +playwright install |
| 65 | +``` |
| 66 | + |
| 67 | +**Nota**: si consiglia di installare la libreria in un ambiente virtuale per evitare conflitti con altre librerie 🐱 |
| 68 | + |
| 69 | +## 💻 Utilizzo |
| 70 | + |
| 71 | +Esistono diverse pipeline di scraping predefinite che possono essere utilizzate per estrarre informazioni da un sito web (o da un file locale). |
| 72 | + |
| 73 | +La più comune è `SmartScraperGraph`, che estrae informazioni da una singola pagina dato un prompt dell'utente e un URL sorgente. |
| 74 | + |
| 75 | +```python |
| 76 | +from scrapegraphai.graphs import SmartScraperGraph |
| 77 | + |
| 78 | +# Definisci la configurazione per la pipeline di scraping |
| 79 | +graph_config = { |
| 80 | + "llm": { |
| 81 | + "model": "ollama/llama3.2", |
| 82 | + "model_tokens": 8192, |
| 83 | + "format": "json", |
| 84 | + }, |
| 85 | + "verbose": True, |
| 86 | + "headless": False, |
| 87 | +} |
| 88 | + |
| 89 | +# Crea l'istanza di SmartScraperGraph |
| 90 | +smart_scraper_graph = SmartScraperGraph( |
| 91 | + prompt="Estrai informazioni utili dalla pagina web, inclusa una descrizione di cosa fa l'azienda, i fondatori e i link ai social media", |
| 92 | + source="https://scrapegraphai.com/", |
| 93 | + config=graph_config |
| 94 | +) |
| 95 | + |
| 96 | +# Esegui la pipeline |
| 97 | +result = smart_scraper_graph.run() |
| 98 | + |
| 99 | +import json |
| 100 | +print(json.dumps(result, indent=4)) |
| 101 | +``` |
| 102 | + |
| 103 | +> [!NOTE] |
| 104 | +> Per OpenAI e altri modelli è sufficiente modificare la configurazione llm! |
| 105 | +> ```python |
| 106 | +> graph_config = { |
| 107 | +> "llm": { |
| 108 | +> "api_key": "LA_TUA_OPENAI_API_KEY", |
| 109 | +> "model": "openai/gpt-4o-mini", |
| 110 | +> }, |
| 111 | +> "verbose": True, |
| 112 | +> "headless": False, |
| 113 | +> } |
| 114 | +> ``` |
| 115 | +
|
| 116 | +L'output sarà un dizionario simile al seguente: |
| 117 | +
|
| 118 | +```python |
| 119 | +{ |
| 120 | + "description": "ScrapeGraphAI transforms websites into clean, organized data for AI agents and data analytics. It offers an AI-powered API for effortless and cost-effective data extraction.", |
| 121 | + "founders": [ |
| 122 | + { |
| 123 | + "name": "", |
| 124 | + "role": "Founder & Technical Lead", |
| 125 | + "linkedin": "https://www.linkedin.com/in/perinim/" |
| 126 | + }, |
| 127 | + { |
| 128 | + "name": "Marco Vinciguerra", |
| 129 | + "role": "Founder & Software Engineer", |
| 130 | + "linkedin": "https://www.linkedin.com/in/marco-vinciguerra-7ba365242/" |
| 131 | + }, |
| 132 | + { |
| 133 | + "name": "Lorenzo Padoan", |
| 134 | + "role": "Founder & Product Engineer", |
| 135 | + "linkedin": "https://www.linkedin.com/in/lorenzo-padoan-4521a2154/" |
| 136 | + } |
| 137 | + ], |
| 138 | + "social_media_links": { |
| 139 | + "linkedin": "https://www.linkedin.com/company/101881123", |
| 140 | + "twitter": "https://x.com/scrapegraphai", |
| 141 | + "github": "https://github.com/ScrapeGraphAI/Scrapegraph-ai" |
| 142 | + } |
| 143 | +} |
| 144 | +``` |
| 145 | +
|
| 146 | +Esistono altre pipeline che possono essere utilizzate per estrarre informazioni da più pagine, generare script Python o persino generare file audio. |
| 147 | + |
| 148 | +| Nome Pipeline | Descrizione | |
| 149 | +|-------------------------|------------------------------------------------------------------------------------------------------------------| |
| 150 | +| SmartScraperGraph | Scraper di singole pagine che richiede solo un prompt utente e una sorgente. | |
| 151 | +| SearchGraph | Scraper multi-pagina che estrae informazioni dai primi n risultati di un motore di ricerca. | |
| 152 | +| SpeechGraph | Scraper di singole pagine che estrae informazioni da un sito web e genera un file audio. | |
| 153 | +| ScriptCreatorGraph | Scraper di singole pagine che estrae informazioni da un sito web e genera uno script Python. | |
| 154 | +| SmartScraperMultiGraph | Scraper multi-pagina che estrae informazioni da più pagine dato un singolo prompt e una lista di sorgenti. | |
| 155 | +| ScriptCreatorMultiGraph | Scraper multi-pagina che genera uno script Python per estrarre informazioni da più pagine e sorgenti. | |
| 156 | + |
| 157 | +Per ciascuno di questi grafi esiste una versione multi, che consente di effettuare chiamate all'LLM in parallelo. |
| 158 | + |
| 159 | +È possibile utilizzare diversi LLM tramite API, come **OpenAI**, **Groq**, **Azure**, **Gemini**, **MiniMax** e altri, oppure modelli locali tramite **Ollama**. |
| 160 | + |
| 161 | +Ricordati di avere [Ollama](https://ollama.com/) installato e di scaricare i modelli con il comando **ollama pull**, se desideri utilizzare modelli locali. |
| 162 | + |
| 163 | +## 📖 Documentazione |
| 164 | + |
| 165 | +[](https://colab.research.google.com/drive/1sEZBonBMGP44CtO6GQTwAlL0BGJXjtfd?usp=sharing) |
| 166 | + |
| 167 | +La documentazione di ScrapeGraphAI è disponibile [qui](https://scrapegraph-ai.readthedocs.io/en/latest/). |
| 168 | +Consulta anche il Docusaurus [qui](https://docs-oss.scrapegraphai.com/). |
| 169 | + |
| 170 | +## 🤝 Vuoi contribuire? |
| 171 | + |
| 172 | +Sentiti libero di contribuire e unisciti al nostro server Discord per discutere con noi su cosa migliorare e darci suggerimenti! |
| 173 | + |
| 174 | +Consulta le [linee guida per i contributi](https://github.com/ScrapeGraphAI/Scrapegraph-ai/blob/main/CONTRIBUTING.md). |
| 175 | + |
| 176 | +[](https://discord.gg/uJN7TYcpNa) |
| 177 | +[](https://www.linkedin.com/company/scrapegraphai/) |
| 178 | +[](https://twitter.com/scrapegraphai) |
| 179 | + |
| 180 | +## 🔗 API e SDK di ScrapeGraph |
| 181 | + |
| 182 | +Se stai cercando una soluzione rapida per integrare ScrapeGraph nel tuo sistema, scopri la nostra potente API [qui!](https://dashboard.scrapegraphai.com/login) |
| 183 | + |
| 184 | +[](https://dashboard.scrapegraphai.com/login) |
| 185 | + |
| 186 | +Offriamo gli SDK sia in Python che in Node.js, per una facile integrazione nei tuoi progetti. Scoprili di seguito: |
| 187 | + |
| 188 | +| SDK | Linguaggio | Link GitHub | |
| 189 | +|------------|------------|-----------------------------------------------------------------------------| |
| 190 | +| Python SDK | Python | [scrapegraph-py](https://github.com/ScrapeGraphAI/scrapegraph-sdk/tree/main/scrapegraph-py) | |
| 191 | +| Node.js SDK | Node.js | [scrapegraph-js](https://github.com/ScrapeGraphAI/scrapegraph-sdk/tree/main/scrapegraph-js) | |
| 192 | + |
| 193 | +La documentazione ufficiale dell'API è disponibile [qui](https://docs.scrapegraphai.com/). |
| 194 | + |
| 195 | +## 🔥 Benchmark |
| 196 | + |
| 197 | +Secondo il benchmark di Firecrawl [Firecrawl benchmark](https://github.com/firecrawl/scrape-evals/pull/3), ScrapeGraph è il miglior fetcher sul mercato! |
| 198 | + |
| 199 | + |
| 200 | + |
| 201 | +## 📈 Telemetria |
| 202 | + |
| 203 | +Raccogliamo metriche di utilizzo anonimizzate per migliorare la qualità e la user experience del nostro pacchetto. I dati ci aiutano a stabilire le priorità e a garantire la compatibilità. Se desideri disattivare la telemetria, imposta la variabile d'ambiente `SCRAPEGRAPHAI_TELEMETRY_ENABLED=false`. Per ulteriori informazioni, consulta la documentazione [qui](https://scrapegraph-ai.readthedocs.io/en/latest/scrapers/telemetry.html). |
| 204 | + |
| 205 | +## ❤️ Collaboratori |
| 206 | + |
| 207 | +[](https://github.com/ScrapeGraphAI/Scrapegraph-ai/graphs/contributors) |
| 208 | + |
| 209 | +## 🎓 Citazioni |
| 210 | + |
| 211 | +Se hai utilizzato la nostra libreria per scopi di ricerca, citaci con il seguente riferimento: |
| 212 | + |
| 213 | +```text |
| 214 | + @misc{scrapegraph-ai, |
| 215 | + author = {Lorenzo Padoan, Marco Vinciguerra}, |
| 216 | + title = {Scrapegraph-ai}, |
| 217 | + year = {2024}, |
| 218 | + url = {https://github.com/ScrapeGraphAI/Scrapegraph-ai}, |
| 219 | + note = {A Python library for scraping leveraging large language models} |
| 220 | + } |
| 221 | +``` |
| 222 | + |
| 223 | +## Autori |
| 224 | + |
| 225 | +| | Contatti | |
| 226 | +|--------------------|----------------------| |
| 227 | +| Marco Vinciguerra | [](https://www.linkedin.com/in/marco-vinciguerra-7ba365242/) | |
| 228 | +| Lorenzo Padoan | [](https://www.linkedin.com/in/lorenzo-padoan-4521a2154/) | |
| 229 | + |
| 230 | +## 📜 Licenza |
| 231 | + |
| 232 | +ScrapeGraphAI è rilasciato sotto la Licenza MIT. Consulta il file [LICENSE](https://github.com/ScrapeGraphAI/Scrapegraph-ai/blob/main/LICENSE) per ulteriori informazioni. |
| 233 | + |
| 234 | +## Ringraziamenti |
| 235 | + |
| 236 | +- Ringraziamo tutti i collaboratori del progetto e la comunità open-source per il loro supporto. |
| 237 | +- ScrapeGraphAI è destinato esclusivamente a scopi di esplorazione dei dati e ricerca. Non siamo responsabili per eventuali usi impropri della libreria. |
| 238 | + |
| 239 | +Fatto con il ❤️ da [ScrapeGraph AI](https://scrapegraphai.com) |
| 240 | + |
| 241 | +[Scarf tracking](https://static.scarf.sh/a.png?x-pxid=102d4b8c-cd6a-4b9e-9a16-d6d141b9212d) |
0 commit comments