{"repo":"ScrapeGraphAI/Scrapegraph-ai","free":true,"listed":false,"github":"https://github.com/ScrapeGraphAI/Scrapegraph-ai","clone":"git clone https://github.com/ScrapeGraphAI/Scrapegraph-ai.git","description":"Python scraper based on AI","language":"Python","stars":29619,"topics":["ai-crawler","ai-scraping","ai-search","crawler","data-extraction","firecrawl-alternative","large-language-model","llm","markdown","rag","scraping","scraping-python","web-crawler","web-crawlers","web-data","web-data-extraction","web-scraper","web-scraping","web-search","webscraping"],"license":"MIT","category":"data_extractor","readme_excerpt":"## 🚀 **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**](https://scrapegraphai.com/?utm_source=github&utm_medium=readme&utm_campaign=oss_cta&ut#m_content=top_banner)! 🚀\n\n---\n\n# 🕷️ ScrapeGraphAI: You Only Scrape Once\n\n<p align=\"center\">\n  <a href=\"https://scrapegraphai.com\">\n    <img src=\"media/banner.png\" alt=\"ScrapeGraphAI\" style=\"width: 100%;\">\n  </a>\n</p>\n\n[English](README.md) | [中文](docs/chinese.md) | [日本語](docs/japanese.md)\n| [한국어](docs/korean.md)\n| [Русский](docs/russian.md) | [Türkçe](docs/turkish.md)\n| [Deutsch](docs/german.md)\n| [Español](docs/spanish.md)\n| [français](docs/french.md)\n| [Português](docs/portuguese.md)\n| [Italiano](docs/italian.md)\n\n[![PyPI Downloads](https://static.pepy.tech/personalized-badge/scrapegraphai?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=GREEN&left_text=downloads)](https://pepy.tech/projects/scrapegraphai)\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge)](https://opensource.org/licenses/MIT)\n[![](https://dcbadge.vercel.app/api/server/gkxQDAjfeX)](https://discord.gg/gkxQDAjfeX)\n\n<p align=\"center\">\n<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>\n<p align=\"center\">\n\n[ScrapeGraphAI](https://scrapegraphai.com) 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.).\n\nJust say which information you want to extract and the library will do it for you!\n\n## 🚀 Integrations\nScrapeGraphAI 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..\n\n<p align=\"center\">\n  <a href=\"https://scrapegraphai.com\">\n    <img src=\"https://raw.githubusercontent.com/ScrapeGraphAI/.github/main/profile/assets/api_banner.png\" alt=\"Web data extraction at scale? Try ScrapeGraphAI cloud\" style=\"width: 100%;\">\n  </a>\n</p>\n\nYou can find more informations at the following [link](https://scrapegraphai.com)\n\n**Integrations**:\n- **API**: [Documentation](https://docs.scrapegraphai.com/introduction)\n- **SDKs**: [Python](https://docs.scrapegraphai.com/sdks/python), [Node](https://docs.scrapegraphai.com/sdks/javascript)\n- **LLM Frameworks**: [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)\n- **Low-code Frameworks**: [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)\n- **MCP server**:  [Link](https://smithery.ai/server/@ScrapeGraphAI/scrapegraph-mcp)\n\n\n## 🚀 Quick install\n\nThe reference page for Scrapegraph-ai is available on the official page of PyPI: [pypi](https://pypi.org/project/scrapegraphai/).\n\n```bash\npip install scrapegraphai\n\n# IMPORTANT (for fetching websites content)\nplaywright install\n```\n\n**Note**: it is recommended to install the library in a virtual environment to avoid conflicts with other libraries 🐱\n\n\n## 💻 Usage\nThere are multiple standard scraping pipelines that can be used to extract information from a website (or local file).\n\nThe most common one is the `SmartScraperGraph`, which extracts information from a single page given a user prompt and a source URL.\n\n\n```python\nfrom scrapegraphai.graphs import SmartScraperGraph\n\n# Define the configuration for the scraping pipeline\ngraph_config = {\n    \"llm\": {\n        \"model\": \"ollama/llama3.2\",\n        \"model_tokens\": 8192,\n        \"format\": \"json\",\n    },\n    \"verbose\": True,\n    \"headless\": False,\n}\n\n# Create the SmartScraperGraph instance\nsmart_scraper_graph = SmartScraperGraph(\n    prompt=\"Extract useful information from the webpage, including a description of what the company does, founders and social media links\",\n    source=\"https://scrapegraphai.com/\",\n    config=graph_config\n)\n\n# Run the pipeline\nresult = smart_scraper_graph.run()\n\nimport json\nprint(json.dumps(result, indent=4))\n```\n\n> [!NOTE]\n> For OpenAI and other models you just need to change the llm config!\n> ```python\n>graph_config = {\n>    \"llm\": {\n>        \"api_key\": \"YOUR_OPENAI_API_KEY\",\n>        \"model\": \"openai/gpt-4o-mini\",\n>    },\n>    \"verbose\": True,\n>    \"headless\": False,\n>}\n>```\n\n\nThe output will be a dictionary like the following:\n\n```python\n{\n    \"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.\",\n    \"founders\": [\n        {\n            \"name\": \"\",\n            \"role\": \"Founder & Technical Lead\",\n            \"linkedin\": \"https://www.linkedin.com/in/perinim/\"\n        },\n        {\n            \"name\": \"Marco Vinciguerra\",\n            \"role\": \"Founder & Software Engineer\",\n            \"linkedin\": \"https://www.linkedin.com/in/marco-vinciguerra-7ba365242/\"\n        },\n        {\n            \"name\": \"Lorenzo Padoan\",\n            \"role\": \"Founder & Product Engineer\",\n            \"linkedin\": \"https://www.linkedin.com/in/lorenzo-padoan-4521a2154/\"\n        }\n    ],\n    \"social_media_links\": {\n        \"linkedin\": \"https://www.linkedin.com/company/101881123\",\n        \"twitter\": \"https://x.com/scrapegraphai\",\n        \"github\": \"https://github.com/ScrapeGraphAI/Scrapegraph-ai\"\n    }\n}\n```\nThere are other pipelines that can be used to extract information from multiple pages, generate Python scripts, or even generate audio files.\n\n| Pipeline Name           | Description                                                                                                      |\n|-------------------------|------------------------------------------------------------------------------------------------------------------|\n| SmartScraperGraph       | Single-page scraper that only needs a user prompt and an input source.                                           |\n| SearchGraph             | Multi-page scraper that extracts information from the top n search results of a search engine.                  |\n| SpeechGraph             | Single-page scraper that extracts information from a website and generates an audio file.                       |\n| ScriptCreatorGraph      | Single-page scraper that extracts information from a website and generates a Python script.                     |\n| SmartScraperMultiGraph  | Multi-page scraper that extracts information from multiple pages given a single prompt and a list of sources.    |\n| ScriptCreatorMultiGraph | Multi-page scraper that generates a Python script for extracting information from multiple pages and sources.     |\n\nFor each of these graphs there is the multi version. It allows to make calls of the LLM in parallel.\n\nIt is possible to use different LLM through APIs, such as **OpenAI**, **Groq**, **Azure**, **Gemini**, **[MiniMax](docs/minimax.md)** and more, or local models using **Ollama**.\n\nRemember to have [Ollama](https://ollama.com/) installed and download the models using the **ollama pull** command, if you want to use local models.\n\n\n## 📖 Documentation\n\n[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1sEZBonBMGP44CtO6GQTwAlL0BGJXjtfd?usp=sharing)\n\nThe documentation for ScrapeGraphAI can be found [here](https://docs.scrapegraphai.com/introduction).\n## 🆚 Open Source vs Managed API\n\nScrapeGraphAI comes in two flavours: **this open-source library**, which you run yourself, and the **managed cloud API** (used via the [Python](https://github.com/ScrapeGraphAI/scrapegraph-py) and [JS/TS](https://github.com/ScrapeGraphAI/scrapegraph-js) SDKs). This table explains the difference so you can pick the right one.\n\n| | Open Source (`scrapegraphai`) | Managed API (`scrapegraph-py` / `scrapegraph-js`) |\n|---|---|---|\n| **What it is** | A Python library you run yourself | A hosted cloud service you call via SDK |\n| **Where it runs** | Your own infrastructure (self-hosted) | ScrapeGraphAI cloud |\n| **LLM** | Bring your own (OpenAI, Groq, Gemini, Azure, local via Ollama) | Managed for you |\n| **Browser / JS rendering** | You configure it (Playwright) | Managed (stealth, `auto`/`fast`/`js` modes) |\n| **Proxies & anti-bot** | Your responsibility | Included |\n| **Scaling & maintenance** | Your responsibility | Fully managed |\n| **Cost model** | LLM tokens + your own infra | Pay-as-you-go credits |\n| **Auth** | Your own LLM keys | `SGAI_API_KEY` |\n| **Capabilities** | Graph pipelines (SmartScraper, Search, Speech, ScriptCreator…) | Scrape, Extract, Search, Crawl, Monitor, History |\n| **Setup effort** | More configuration | Minimal — API key + one call |\n| **License** | MIT | SDK is MIT; the API service is paid |\n\n**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.\n\n**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.\n\n- Open-source library: https://github.com/ScrapeGraphAI/Scrapegraph-ai\n- Python SDK: https://github.com/ScrapeGraphAI/scrapegraph-py\n- JS/TS SDK: https://","default_branch":"main","files":385,"tree":[".gitattributes",".github/FUNDING.yml",".github/ISSUE_TEMPLATE/bug_report.md",".github/ISSUE_TEMPLATE/custom.md",".github/ISSUE_TEMPLATE/feature_request.md",".github/workflows/codeql.yml",".github/workflows/dependency-review.yml",".github/workflows/release.yml",".github/workflows/test-suite.yml",".gitignore",".pre-commit-config.yaml",".releaserc.yml",".semantic-commits-applied","CHANGELOG.md","CODE_OF_CONDUCT.md","CONTRIBUTING.md","Dockerfile","LICENSE","Makefile","PullRequests/PR_1027_reviews.md","README.md","SECURITY.md","SEMANTIC_COMMITS.md","TESTING_INFRASTRUCTURE.md","citation.cff","codebeaver.yml","docker-compose.yml","docs/assets/api-banner.png","docs/assets/api_banner.png","docs/assets/apikey_1.png","docs/assets/apikey_2.png","docs/assets/apikey_3.png","docs/assets/apikey_4.png","docs/assets/browserbase_logo.png","docs/assets/codespaces-badge.png","docs/assets/histogram.png","docs/assets/omniscrapergraph.png","docs/assets/omnisearchgraph.png","docs/assets/project_overview_diagram.fig","docs/assets/project_overview_diagram.png","docs/assets/scrapegraphai_logo.png","docs/assets/scrapegraphai_logo.svg","docs/assets/scriptcreatorgraph.png","docs/assets/searchgraph.png","docs/assets/sgai-hero.png","docs/assets/smartscrapergraph.png","docs/assets/speechgraph.png","docs/chinese.md","docs/french.md","docs/german.md","docs/italian.md","docs/japanese.md","docs/korean.md","docs/portuguese.md","docs/russian.md","docs/spanish.md","docs/timeout_configuration.md","docs/turkish.md","examples/ScrapegraphAI_cookbook.ipynb","examples/code_generator_graph/.env.example","examples/code_generator_graph/README.md","examples/code_generator_graph/ollama/code_generator_graph_ollama.py","examples/code_generator_graph/openai/code_generator_graph_openai.py","examples/csv_scraper_graph/.env.example","examples/csv_scraper_graph/README.md","examples/csv_scraper_graph/ollama/csv_scraper_graph_multi_ollama.py","examples/csv_scraper_graph/ollama/csv_scraper_ollama.py","examples/csv_scraper_graph/ollama/inputs/username.csv","examples/csv_scraper_graph/openai/csv_scraper_graph_multi_openai.py","examples/csv_scraper_graph/openai/csv_scraper_openai.py","examples/csv_scraper_graph/openai/inputs/username.csv","examples/custom_graph/.env.example","examples/custom_graph/README.md","examples/custom_graph/ollama/custom_graph_ollama.py","examples/custom_graph/openai/custom_graph_openai.py","examples/depth_search_graph/.env.example","examples/depth_search_graph/README.md","examples/depth_search_graph/ollama/depth_search_graph_ollama.py","examples/depth_search_graph/openai/depth_search_graph_openai.py","examples/document_scraper_graph/.env.example","examples/document_scraper_graph/README.md","examples/document_scraper_graph/ollama/document_scraper_ollama.py","examples/document_scraper_graph/ollama/inputs/plain_html_example.txt","examples/document_scraper_graph/openai/document_scraper_openai.py","examples/document_scraper_graph/openai/inputs/markdown_example.md","examples/document_scraper_graph/openai/inputs/plain_html_example.txt","examples/extras/.env.example","examples/extras/Savedscreenshots/test_image.jpeg","examples/extras/authenticated_playwright.py","examples/extras/browser_base_integration.py","examples/extras/chromium_selenium.py","examples/extras/cond_smartscraper_usage.py","examples/extras/conditional_usage.py","examples/extras/custom_prompt.py","examples/extras/example.yml","examples/extras/force_mode.py","examples/extras/html_mode.py","examples/extras/load_yml.py","examples/extras/no_cut.py","examples/extras/proxy_rotation.py","examples/extras/rag_caching.py","examples/extras/reasoning.py","examples/extras/scrape_do.py","examples/extras/screenshot_scaping.py","examples/extras/serch_graph_scehma.py","examples/extras/slow_mo.py","examples/extras/undected_playwright.py","examples/json_scraper_graph/.env.example","examples/json_scraper_graph/README.md","examples/json_scraper_graph/ollama/inputs/example.json","examples/json_scraper_graph/ollama/json_scraper_multi_ollama.py","examples/json_scraper_graph/ollama/json_scraper_ollama.py","examples/json_scraper_graph/openai/inputs/example.json","examples/json_scraper_graph/openai/json_scraper_multi_openai.py","examples/json_scraper_graph/openai/json_scraper_openai.py","examples/json_scraper_graph/openai/md_scraper_openai.py","examples/json_scraper_graph/openai/omni_scraper_openai.py","examples/markdownify/.env.example","examples/markdownify/markdownify_scrapegraphai.py","examples/markdownify/markdownify_scrapegraphai_v3.py","examples/markdownify/readme.md","examples/omni_scraper_graph/.env.example","examples/omni_scraper_graph/README.md","examples/omni_scraper_graph/omni_search_openai.py","examples/readme.md","examples/script_generator_graph/.env.example","examples/script_generator_graph/README.md","examples/script_generator_graph/ollama/script_generator_ollama.py","examples/script_generator_graph/ollama/script_multi_generator_ollama.py","examples/script_generator_graph/openai/script_generator_multi_openai.py","examples/script_generator_graph/openai/script_generator_openai.py","examples/script_generator_graph/openai/script_generator_schema_openai.py","examples/search_graph/.env.example","examples/search_graph/README.md","examples/search_graph/ollama/search_graph_ollama.py","examples/search_graph/ollama/search_graph_schema_ollama.py","examples/search_graph/openai/search_graph_openai.py","examples/search_graph/openai/search_graph_schema_openai.py","examples/search_graph/openai/search_link_graph_openai.py","examples/search_graph/scrapegraphai/.env.example","examples/search_graph/scrapegraphai/readme.md","examples/search_graph/scrapegraphai/searchscraper_scrapegraphai.py","examples/search_graph/scrapegraphai/searchscraper_scrapegraphai_v3.py","examples/smart_scraper_graph/.env.example","examples/smart_scraper_graph/nvidia/smart_scraper_nvidia.py","examples/smart_scraper_graph/ollama/smart_scraper_lite_ollama.py","examples/smart_scraper_graph/ollama/smart_scraper_multi_concat_ollama.py","examples/smart_scraper_graph/ollama/smart_scraper_multi_lite_ollama.py","examples/smart_scraper_graph/ollama/smart_scraper_multi_ollama.py","examples/smart_scraper_graph/ollama/smart_scraper_ollama.py","examples/smart_scraper_graph/ollama/smart_scraper_schema_ollama.py","examples/smart_scraper_graph/openai/smart_scraper_lite_openai.py","examples/smart_scraper_graph/openai/smart_scraper_multi_concat_openai.py","examples/smart_scraper_graph/openai/smart_scraper_multi_lite_openai.py","examples/smart_scraper_graph/openai/smart_scraper_multi_openai.py","examples/smart_scraper_graph/openai/smart_scraper_openai.py","examples/smart_scraper_graph/openai/smart_scraper_schema_openai.py","examples/smart_scraper_graph/scrapegraphai/.env.example","examples/smart_scraper_graph/scrapegraphai/readme.md","examples/smart_scraper_graph/scrapegraphai/smartscraper_scrapegraphai.py","examples/smart_scraper_graph/scrapegraphai/smartscraper_scrapegraphai_v3.py","examples/speech_graph/.env.example","examples/speech_graph/README.md","examples/speech_graph/speech_graph_openai.py","examples/xml_scraper_graph/.env.example","examples/xml_scraper_graph/README.md","examples/xml_scraper_graph/ollama/inputs/books.xml","examples/xml_scraper_graph/ollama/xml_scraper_graph_multi_ollama.py","examples/xml_scraper_graph/ollama/xml_scraper_ollama.py","examples/xml_scraper_graph/openai/inputs/books.xml","examples/xml_scraper_graph/openai/xml_scraper_graph_multi_openai.py","examples/xml_scraper_graph/openai/xml_scraper_openai.py","media/banner.png","pyproject.toml","pytest.ini","scrapegraphai/__init__.py","scrapegraphai/builders/__init__.py","scrapegraphai/builders/graph_builder.py","scrapegraphai/docloaders/__init__.py","scrapegraphai/docloaders/browser_base.py","scrapegraphai/docloaders/chromium.py","scrapegraphai/docloaders/plasmate.py","scrapegraphai/docloaders/scrape_do.py","scrapegraphai/graphs/__init__.py","scrapegraphai/graphs/abstract_graph.py","scrapegraphai/graphs/base_graph.py","scrapegraphai/graphs/code_generator_graph.py","scrapegraphai/graphs/csv_scraper_graph.py","scrapegraphai/graphs/csv_scraper_multi_graph.py","scrapegraphai/graphs/depth_search_graph.py","scrapegraphai/graphs/document_scraper_graph.py","scrapegraphai/graphs/document_scraper_multi_graph.py","scrapegraphai/graphs/json_scraper_graph.py","scrapegraphai/graphs/json_scraper_multi_graph.py","scrapegraphai/graphs/markdownify_graph.py","scrapegraphai/graphs/omni_scraper_graph.py","scrapegraphai/graphs/omni_search_graph.py","scrapegraphai/graphs/screenshot_scraper_graph.py","scrapegraphai/graphs/script_creator_graph.py","scrapegraphai/graphs/script_creator_multi_graph.py","scrapegraphai/graphs/search_graph.py","scrapegraphai/graphs/search_link_graph.py","scrapegraphai/graphs/smart_scraper_graph.py","scrapegraphai/graphs/smart_scraper_lite_graph.py","scrapegraphai/graphs/smart_scraper_multi_batch_graph.py","scrapegraphai/graphs/smart_scraper_multi_concat_graph.py","scrapegraphai/graphs/smart_scraper_multi_graph.py","scrapegraphai/graphs/smart_scraper_multi_lite_graph.py","scrapegraphai/graphs/speech_graph.py","scrapegraphai/graphs/xml_scraper_graph.py","scrapegraphai/graphs/xml_scraper_multi_graph.py","scrapegraphai/helpers/__init__.py","scrapegraphai/helpers/default_filters.py","scrapegraphai/helpers/models_tokens.py","scrapegraphai/helpers/nodes_metadata.py","scrapegraphai/helpers/robots.py","scrapegraphai/helpers/schemas.py","scrapegraphai/integrations/__init__.py","scrapegraphai/integrations/burr_bridge.py","scrapegraphai/integrations/indexify_node.py","scrapegraphai/integrations/scrapegraph_py_compat.py","scrapegraphai/models/__init__.py","scrapegraphai/models/atlascloud.py","scrapegraphai/models/clod.py","scrapegraphai/models/deepseek.py","scrapegraphai/models/minimax.py","scrapegraphai/models/nvidia.py","scrapegraphai/models/oneapi.py","scrapegraphai/models/openai_itt.py","scrapegraphai/models/openai_tts.py","scrapegraphai/models/xai.py","scrapegraphai/nodes/__init__.py","scrapegraphai/nodes/base_node.py","scrapegraphai/nodes/batch_generate_answer_node.py","scrapegraphai/nodes/concat_answers_node.py","scrapegraphai/nodes/conditional_node.py","scrapegraphai/nodes/description_node.py","scrapegraphai/nodes/fetch_node.py","scrapegraphai/nodes/fetch_node_level_k.py","scrapegraphai/nodes/fetch_screen_node.py","scrapegraphai/nodes/generate_answer_csv_node.py","scrapegraphai/nodes/generate_answer_from_image_node.py","scrapegraphai/nodes/generate_answer_node.py","scrapegraphai/nodes/generate_answer_node_k_level.py","scrapegraphai/nodes/generate_answer_omni_node.py","scrapegraphai/nodes/generate_code_node.py","scrapegraphai/nodes/generate_scraper_node.py","scrapegraphai/nodes/get_probable_tags_node.py","scrapegraphai/nodes/graph_iterator_node.py","scrapegraphai/nodes/html_analyzer_node.py","scrapegraphai/nodes/image_to_text_node.py","scrapegraphai/nodes/markdownify_node.py","scrapegraphai/nodes/merge_answers_node.py","scrapegraphai/nodes/merge_generated_scripts_node.py","scrapegraphai/nodes/parse_node.py","scrapegraphai/nodes/parse_node_depth_k_node.py","scrapegraphai/nodes/prompt_refiner_node.py","scrapegraphai/nodes/rag_node.py","scrapegraphai/nodes/reasoning_node.py","scrapegraphai/nodes/robots_node.py","scrapegraphai/nodes/search_internet_node.py","scrapegraphai/nodes/search_link_node.py","scrapegraphai/nodes/search_node_with_context.py","scrapegraphai/nodes/text_to_speech_node.py","scrapegraphai/prompts/__init__.py","scrapegraphai/prompts/description_node_prompts.py","scrapegraphai/prompts/generate_answer_node_csv_prompts.py","scrapegraphai/prompts/generate_answer_node_omni_prompts.py","scrapegraphai/prompts/generate_answer_node_pdf_prompts.py","scrapegraphai/prompts/generate_answer_node_prompts.py","scrapegraphai/prompts/generate_code_node_prompts.py","scrapegraphai/prompts/get_probable_tags_node_prompts.py","scrapegraphai/prompts/html_analyzer_node_prompts.py","scrapegraphai/prompts/merge_answer_node_prompts.py","scrapegraphai/prompts/merge_generated_scripts_prompts.py","scrapegraphai/prompts/prompt_refiner_node_prompts.py","scrapegraphai/prompts/reasoning_node_prompts.py","scrapegraphai/prompts/robots_node_prompts.py","scrapegraphai/prompts/search_internet_node_prompts.py","scrapegraphai/prompts/search_link_node_prompts.py","scrapegraphai/prompts/search_node_with_context_prompts.py","scrapegraphai/telemetry/__init__.py","scrapegraphai/telemetry/telemetry.py","scrapegraphai/utils/__init__.py","scrapegraphai/utils/batch_api.py","scrapegraphai/utils/cleanup_code.py","scrapegraphai/utils/cleanup_html.py","scrapegraphai/utils/code_error_analysis.py","scrapegraphai/utils/code_error_correction.py","scrapegraphai/utils/convert_to_md.py","scrapegraphai/utils/copy.py","scrapegraphai/utils/custom_callback.py","scrapegraphai/utils/data_export.py","scrapegraphai/utils/dict_content_compare.py","scrapegraphai/utils/llm_callback_manager.py","scrapegraphai/utils/logging.py","scrapegraphai/utils/model_costs.py","scrapegraphai/utils/output_parser.py","scrapegraphai/utils/parse_state_keys.py","scrapegraphai/utils/prettify_exec_info.py","scrapegraphai/utils/proxy_rotation.py","scrapegraphai/utils/research_web.py","scrapegraphai/utils/save_audio_from_bytes.py","scrapegraphai/utils/save_code_to_file.py","scrapegraphai/utils/schema_trasform.py","scrapegraphai/utils/screenshot_scraping/__init__.py","scrapegraphai/utils/screenshot_scraping/screenshot_preparation.py","scrapegraphai/utils/screenshot_scraping/text_detection.py","scrapegraphai/utils/split_text_into_chunks.py","scrapegraphai/utils/sys_dynamic_import.py","scrapegraphai/utils/tokenizer.py","scrapegraphai/utils/tokenizers/tokenizer_mistral.py","scrapegraphai/utils/tokenizers/tokenizer_ollama.py","scrapegraphai/utils/tokenizers/tokenizer_openai.py","test","tests/QUICKSTART.md","tests/README_TESTING.md","tests/Readme.md","tests/conftest.py","tests/fixtures/benchmarking.py","tests/fixtures/helpers.py","tests/fixtures/mock_server/__init__.py","tests/fixtures/mock_server/server.py","tests/graphs/.env.example","tests/graphs/abstract_graph_test.py","tests/graphs/code_generator_graph_openai_test.py","tests/graphs/depth_search_graph_openai_test.py","tests/graphs/inputs/books.xml","tests/graphs/inputs/example.json","tests/graphs/inputs/plain_html_example.txt","tests/graphs/inputs/username.csv","tests/graphs/scrape_plain_text_mistral_test.py","tests/graphs/scrape_xml_ollama_test.py","tests/graphs/screenshot_scraper_test.py","tests/graphs/script_generator_test.py","tests/graphs/search_graph_openai_test.py","tests/graphs/search_link_ollama.py","tests/graphs/smart_scraper_clod_test.py","tests/graphs/smart_scraper_ernie_test.py","tests/graphs/smart_scraper_fireworks_test.py","tests/graphs/smart_scraper_multi_lite_graph_openai_test.py","tests/graphs/smart_scraper_ollama_test.py","tests/graphs/smart_scraper_openai_test.py","tests/graphs/xml_scraper_openai_test.py","tests/inputs/books.xml","tests/inputs/example.json","tests/inputs/plain_html_example.txt","tests/inputs/username.csv","tests/integration/__init__.py","tests/integration/test_file_formats_integration.py","tests/integration/test_multi_graph_integration.py","tests/integration/test_smart_scraper_integration.py","tests/nodes/fetch_node_test.py","tests/nodes/inputs/books.xml","tests/nodes/inputs/example.json","tests/nodes/inputs/plain_html_example.txt","tests/nodes/inputs/username.csv","tests/nodes/robot_node_test.py","tests/nodes/search_internet_node_test.py","tests/nodes/search_link_node_test.py","tests/test_atlascloud_model.py","tests/test_batch_api.py","tests/test_chromium.py","tests/test_cleanup_html.py","tests/test_csv_scraper_multi_graph.py","tests/test_depth_search_graph.py","tests/test_fetch_node_timeout.py","tests/test_generate_answer_node.py","tests/test_json_scraper_graph.py","tests/test_json_scraper_multi_graph.py","tests/test_minimax_models.py","tests/test_models_tokens.py","tests/test_omni_search_graph.py","tests/test_plasmate.py","tests/test_scrape_do.py","tests/test_script_creator_multi_graph.py","tests/test_search_graph.py","tests/test_smart_scraper_multi_concat_graph.py","tests/utils/convert_to_md_test.py","tests/utils/copy_utils_test.py","tests/utils/parse_state_keys_test.py","tests/utils/research_web_test.py","tests/utils/test_proxy_rotation.py","tests/utils/test_sys_dynamic_import.py","uv.lock"],"storefront":"/r/ScrapeGraphAI","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/ScrapeGraphAI/Scrapegraph-ai/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}