Scrapegraph-ai README

The project's README from github.com/ScrapeGraphAI/Scrapegraph-ai. As one markdown file: README.md.

🚀 Looking for an even faster and simpler way to scrape at scale (only 5 lines of code)? Check out our enhanced version at ScrapeGraphAI.com! 🚀


🕷️ ScrapeGraphAI: You Only Scrape Once

ScrapeGraphAI

English | 中文 | 日本語 | 한국어 | Русский | Türkçe | Deutsch | Español | français | Português | Italiano

PyPI Downloads

License: MIT

ScrapeGraphAI%2FScrapegraph-ai | Trendshift

ScrapeGraphAI is a web scraping python library that uses LLM and direct graph logic to create scraping pipelines for websites and local documents (XML, HTML, JSON, Markdown, etc.).

Just say which information you want to extract and the library will do it for you!

🚀 Integrations

ScrapeGraphAI offers seamless integration with popular frameworks and tools to enhance your scraping capabilities. Whether you're building with Python or Node.js, using LLM frameworks, or working with no-code platforms, we've got you covered with our comprehensive integration options..

Web data extraction at scale? Try ScrapeGraphAI cloud

You can find more informations at the following link

Integrations:

🚀 Quick install

The reference page for Scrapegraph-ai is available on the official page of PyPI: pypi.

pip install scrapegraphai

# IMPORTANT (for fetching websites content)
playwright install

Note: it is recommended to install the library in a virtual environment to avoid conflicts with other libraries 🐱

💻 Usage

There are multiple standard scraping pipelines that can be used to extract information from a website (or local file).

The most common one is the SmartScraperGraph, which extracts information from a single page given a user prompt and a source URL.

from scrapegraphai.graphs import SmartScraperGraph

# Define the configuration for the scraping pipeline
graph_config = {
    "llm": {
        "model": "ollama/llama3.2",
        "model_tokens": 8192,
        "format": "json",
    },
    "verbose": True,
    "headless": False,
}

# Create the SmartScraperGraph instance
smart_scraper_graph = SmartScraperGraph(
    prompt="Extract useful information from the webpage, including a description of what the company does, founders and social media links",
    source="https://scrapegraphai.com/",
    config=graph_config
)

# Run the pipeline
result = smart_scraper_graph.run()

import json
print(json.dumps(result, indent=4))

[!NOTE] For OpenAI and other models you just need to change the llm config!

graph_config = {
   "llm": {
       "api_key": "YOUR_OPENAI_API_KEY",
       "model": "openai/gpt-4o-mini",
   },
   "verbose": True,
   "headless": False,
}

The output will be a dictionary like the following:

{
    "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.",
    "founders": [
        {
            "name": "",
            "role": "Founder & Technical Lead",
            "linkedin": "https://www.linkedin.com/in/perinim/"
        },
        {
            "name": "Marco Vinciguerra",
            "role": "Founder & Software Engineer",
            "linkedin": "https://www.linkedin.com/in/marco-vinciguerra-7ba365242/"
        },
        {
            "name": "Lorenzo Padoan",
            "role": "Founder & Product Engineer",
            "linkedin": "https://www.linkedin.com/in/lorenzo-padoan-4521a2154/"
        }
    ],
    "social_media_links": {
        "linkedin": "https://www.linkedin.com/company/101881123",
        "twitter": "https://x.com/scrapegraphai",
        "github": "https://github.com/ScrapeGraphAI/Scrapegraph-ai"
    }
}

There are other pipelines that can be used to extract information from multiple pages, generate Python scripts, or even generate audio files.

Pipeline Name Description
SmartScraperGraph Single-page scraper that only needs a user prompt and an input source.
SearchGraph Multi-page scraper that extracts information from the top n search results of a search engine.
SpeechGraph Single-page scraper that extracts information from a website and generates an audio file.
ScriptCreatorGraph Single-page scraper that extracts information from a website and generates a Python script.
SmartScraperMultiGraph Multi-page scraper that extracts information from multiple pages given a single prompt and a list of sources.
ScriptCreatorMultiGraph Multi-page scraper that generates a Python script for extracting information from multiple pages and sources.

For each of these graphs there is the multi version. It allows to make calls of the LLM in parallel.

It is possible to use different LLM through APIs, such as OpenAI, Groq, Azure, Gemini, MiniMax and more, or local models using Ollama.

Remember to have Ollama installed and download the models using the ollama pull command, if you want to use local models.

📖 Documentation

Open In Colab

The documentation for ScrapeGraphAI can be found here.

🆚 Open Source vs Managed API

ScrapeGraphAI comes in two flavours: this open-source library, which you run yourself, and the managed cloud API (used via the Python and JS/TS SDKs). This table explains the difference so you can pick the right one.

Open Source (scrapegraphai) Managed API (scrapegraph-py / scrapegraph-js)
What it is A Python library you run yourself A hosted cloud service you call via SDK
Where it runs Your own infrastructure (self-hosted) ScrapeGraphAI cloud
LLM Bring your own (OpenAI, Groq, Gemini, Azure, local via Ollama) Managed for you
Browser / JS rendering You configure it (Playwright) Managed (stealth, auto/fast/js modes)
Proxies & anti-bot Your responsibility Included
Scaling & maintenance Your responsibility Fully managed
Cost model LLM tokens + your own infra Pay-as-you-go credits
Auth Your own LLM keys SGAI_API_KEY
Capabilities Graph pipelines (SmartScraper, Search, Speech, ScriptCreator…) Scrape, Extract, Search, Crawl, Monitor, History
Setup effort More configuration Minimal — API key + one call
License MIT SDK is MIT; the API service is paid

Choose the open-source library if you want full control, on-prem/self-hosted data, local LLMs (Ollama), or fine-grained cost tuning — and you're happy to manage browsers, proxies and scaling yourself.

Choose the managed API if you want zero infrastructure, managed JS rendering & anti-bot, built-in Crawl and scheduled Monitor jobs, and the fastest path to production — billed per credit.

🏆 Sponsors

NodeMaven

Codes for ScrapeGraphAI users: SCRAPEGRAPH35 (35% off mobile and residential proxies), SCRAPEGRAPH40 (40% off ISP / static proxies).

🤝 Contributing

Feel free to contribute and join our Discord server to discuss with us improvements and give us suggestions!

Please see the contributing guidelines.

My Skills My Skills My Skills

🔗 ScrapeGraph API & SDKs

If you are looking for a quick solution to integrate ScrapeGraph in your system, check out our powerful API here!

API Banner

We offer SDKs in both Python and Node.js, making it easy to integrate into your projects. Check them out below:

SDK Language GitHub Link
Python SDK Python scrapegraph-py
Node.js SDK Node.js scrapegraph-js

The Official API Documentation can be found here.

📈 Telemetry

We collect anonymous usage metrics to enhance our package's quality and user experience. The data helps us prioritize improvements and ensure compatibility. If you wish to opt-out, set the environment variable SCRAPEGRAPHAI_TELEMETRY_ENABLED=false. For more information, please refer to the documentation here.

❤️ Contributors

Contributors

🎓 Citations

If you have used our library for research purposes please quote us with the following reference:

  @misc{scrapegraph-ai,
    author = {Lorenzo Padoan, Marco Vinciguerra},
    title = {Scrapegraph-ai},
    year = {2024},
    url = {https://github.com/ScrapeGraphAI/Scrapegraph-ai},
    note = {A Python library for scraping leveraging large language models}
  }

Authors

Contact Info
Marco Vinciguerra Linkedin Badge
Lorenzo Padoan Linkedin Badge

📜 License

ScrapeGraphAI is licensed under the MIT License. See the LICENSE file for more information.

Acknowledgements

Made with ❤️ by ScrapeGraph AI

Scarf tracking

Scrapegraph-ai (ScrapeGraphAI/Scrapegraph-ai)

Searching Database…

这是干什么的?ScrapeGraphAI 是一个 Python 网页抓取库,利用大语言模型(LLM)和直接的图逻辑,为网站和本地文档(XML、HTML、JSON、Markdown)搭建抓取流水线。你只需说明想提取哪些信息,剩下的它都会搞定。
它是我自己运行的库,还是我调用的托管服务?它是一个 Python 库,部署在你自己的基础设施上,使用你自己提供的 LLM 密钥。另外还有一个托管云 API,提供 Python 和 JS 的 SDK,但那是单独的付费服务,不是这个仓库。
我怎么把它装到我的项目里?用 pip 从 PyPI 安装即可——README 建议在虚拟环境中安装,以免和其他库冲突。仓库里还附带了 Docker 和 docker-compose 文件。
我需要 OpenAI 的 API 密钥吗,还是可以用本地模型?都可以:它支持各种 LLM API——OpenAI、Groq、Azure、Gemini、MiniMax 等等——也可以通过 Ollama 完全使用本地模型。用本地模型的话,需要先安装 Ollama,并用 'ollama pull' 把模型拉下来。
有什么要注意的地方——浏览器和反爬虫要我自己处理吗?是的——用开源库的话,通过 Playwright 渲染 JS、代理、反爬虫处理、扩展和维护都得你自己负责。托管 API 则包含这些功能,按积分计费。
它会把我的使用情况上报回去吗?默认会收集匿名的使用遥测数据。把环境变量 SCRAPEGRAPHAITELEMETRYENABLED 设为 false 即可关闭。
它自带哪些抓取流水线?六种图流水线:SmartScraperGraph(根据提示词和来源抓取单个页面)、SearchGraph(抓取前 n 条搜索结果)、SpeechGraph(提取信息并返回音频文件)、ScriptCreatorGraph(生成 Python 脚本),另外还有 SmartScraper 和 ScriptCreator 的 Multi 版本,可并行调用 LLM 处理页面列表。
我应该从哪个流水线入手?SmartScraperGraph——它最常用,只需要一个用户提示词和一个来源 URL,返回以字典形式组织的提取数据。
什么情况下我会选它而不是付费的 ScrapeGraph 云 API?选库的场景是:你想要完全掌控、数据不出本地、使用本地 Ollama 模型或精细控制成本,并且不介意自己管理浏览器、代理和扩展。选云 API 的场景是:零基础设施、托管式 JS 渲染和反爬虫,以及最快的上线路径。
它能和哪些工具和框架集成?LLM 框架(Langchain、Llama Index、Crew.ai、Agno、CamelAI)、低代码平台(Pipedream、Bubble、Zapier、n8n、Dify、Toolhouse)、一个 MCP 服务器,以及官方的 Python 和 Node SDK。
Size
16.9 MB
Stars
31.9K
Age
2y
Commits · 90 Days