Scrapegraph-ai is a free, open source data extraction & web scraping project written in Python and released under MIT. It has 31,056 GitHub stars, 3,126 forks and 16 open issues, and was last pushed 11 days ago. On this registry it ranks #8 of 45 tracked projects in Data Extraction & Web Scraping, with 5 head-to-head comparisons available. It gained 51 stars over the last 3 tracked days.

What is Scrapegraph-ai?

What it is

ScrapeGraphAI is an open-source Python library for web scraping that combines large language models with direct graph logic to build scraping pipelines. It lives in the Python ecosystem and is distributed under the MIT license, with the reference package published on PyPI as scrapegraphai. Rather than requiring a developer to hand-write selectors for every page, the library accepts a natural-language prompt describing the information to extract, alongside a source URL or local document, and returns structured results. It is designed around the idea expressed in its own tagline, "You Only Scrape Once," meaning that a single declarative prompt should be enough to retrieve the desired data.

The concrete problem it solves is the fragility and effort of conventional scraping. Traditional scrapers break whenever a site changes its markup, and writing them demands per-site knowledge of HTML structure. ScrapeGraphAI replaces that with prompt-driven extraction, so the user states which fields are wanted and the pipeline handles the retrieval. It also extends beyond live websites to local documents in XML, HTML, JSON, and Markdown formats, which makes it usable for parsing stored files as well as remote pages. The project positions itself as an alternative in the same space as Firecrawl, and it offers integrations with LLM frameworks, low-code platforms, and an MCP server.

Key capabilities

  • Prompt-based extraction through pipelines such as SmartScraperGraph, which takes a user prompt and a source URL and returns structured output.
  • Support for multiple LLM backends, including local models served through Ollama and hosted models such as OpenAI, configured by changing the llm block in the graph configuration.
  • Extraction from local documents in XML, HTML, JSON, and Markdown in addition to remote web pages.
  • Integration with LLM frameworks including Langchain, Llama Index, CrewAI, Agno, and CamelAI.
  • Integration with low-code and automation platforms including Pipedream, Bubble, Zapier, n8n, Dify, and Toolhouse.
  • An MCP server for use with MCP-compatible clients.
  • Official Python and Node SDKs plus a documented API for programmatic access.

Who uses it and how

  • Python developers building scraping pipelines who want to describe target data in a prompt instead of writing per-site selectors.
  • Teams already working inside LLM frameworks such as Langchain or Llama Index that need extraction as one step in a larger agent workflow.
  • Users of low-code automation platforms such as n8n, Zapier, or Pipedream who connect ScrapeGraphAI as an app within existing workflows.
  • Developers running local models through Ollama who want scraping to stay on their own infrastructure rather than calling a hosted API.
  • Builders of retrieval-augmented generation systems who need to convert web pages or local documents into Markdown or JSON for downstream indexing.

Getting started

Install from PyPI with pip install scrapegraphai, then run playwright install to enable fetching of website content; installing inside a virtual environment is recommended. A hosted option and a documented API with Python and Node SDKs are also available through the project's website.

When to use it — and when not to

The library is a reasonable choice for teams that want prompt-driven extraction without paying for a commercial scraping service, and it is listed as a Firecrawl alternative. A self-hoster must supply and operate an LLM backend, whether a local model through Ollama or a hosted provider with an API key, and must also install Playwright browser dependencies for fetching page content. The main weakness evident from the facts is that extraction quality depends on the chosen model, and the README itself points users toward a separate enhanced hosted version for faster and simpler scraping at scale.

project readme (upstream, from github) — read inline

🚀 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

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 &

readme truncated — read the full docs on github

Frequently asked questions

Is Scrapegraph-ai free to use?

Scrapegraph-ai is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Scrapegraph-ai do?

Python scraper based on AI

What is Scrapegraph-ai written in?

Scrapegraph-ai is primarily written in Python. Its source is publicly available at https://github.com/ScrapeGraphAI/Scrapegraph-ai, and it has 31,056 GitHub stars.