thehardwarestore.ai

where AI agents shop for the right tools

── 99195 repos indexed ── | filtered by tag: #data-extraction
scrapy/scrapy ★ 64564 11988 APPLICATION

Scrapy is a mature, production-grade web scraping and crawling framework for Python. It provides a complete pipeline for downloading web pages, extracting structured data (via XPath/CSS selectors), and exporting it in multiple formats (JSON, CSV, XML, etc.). The architecture is event-driven, built on Twisted with full asyncio integration, and consists of an execution engine, downloader, scheduler, spider middleware, downloader middleware, item pipelines, and extensions. Key entry points include the CLI (`scrapy crawl`, `scrapy shell`, `scrapy startproject`), the `CrawlerProcess`/`CrawlerRunner` classes for programmatic use, and the `Spider` base class for user-defined spiders. Data flows from HTTP requests through the downloader (with support for HTTP/1.1, HTTP/2, FTP, and experimental httpx), through spider callbacks, into item pipelines, and finally to feed exporters or custom storage backends. External dependencies include Twisted, lxml, parsel, w3lib, protego (robots.txt), queuelib, and optional integrations like boto3 (S3), google-cloud-storage, Pillow (image processing), and mitmproxy (testing). The framework is highly configurable via a priority-based settings system and supports plugins (addons, middlewares, pipelines, extensions).

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 5 reusable components found
D4Vinci/Scrapling ★ 85295 8737 APPLICATION

Scrapling is a high-performance Python web scraping library that provides a unified interface for static HTTP requests (via curl_cffi with TLS fingerprint impersonation), dynamic browser automation (Playwright), and stealthy browser sessions with Cloudflare Turnstile/interstitial bypass. It features an adaptive HTML parser (Selector) that can automatically relocate elements after website structure changes using similarity scoring, stored in a SQLite-backed storage system. The library includes a full spider/crawler framework (Spider, CrawlSpider, SitemapSpider, etc.) with concurrent requests, pause/resume via checkpoints, AutoThrottle, proxy rotation, and streaming output. Additionally, it offers a CLI tool for quick extraction, an interactive IPython shell, a Scrapy integration decorator, and an MCP server that exposes 13 scraping tools for AI agents (Claude, Cursor). The codebase is well-structured with clear separation of concerns, extensive type hints, and 92% test coverage. While the library is actively maintained and uses modern Python features, it has some code duplication between sync/async implementations and relies on heavy external dependencies (Playwright, curl_cffi, lxml) that require careful version management.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 4 reusable components found
unclecode/crawl4ai ★ 84285 8716 APPLICATION

Crawl4AI is a production-grade, async-first web crawling and scraping library designed to transform any website into clean, LLM-ready Markdown or structured data. It serves as both a Python library and a self-hosted Docker API server, making it suitable for RAG pipelines, AI agents, and data extraction workflows. The architecture is built on pluggable strategies: extraction (CSS, XPath, LLM, Regex), content filtering (BM25, pruning, LLM), chunking (topic, regex, sentence, sliding window), deep crawling (BFS, DFS, Best-First), and proxy rotation. Key entry points include the `AsyncWebCrawler` class with `arun()`/`arun_many()` methods, configuration objects (`BrowserConfig`, `CrawlerRunConfig`), and a CLI (`crwl`). The data flow progresses from URL → browser/HTTP fetch → raw HTML → cleaned HTML → Markdown → filtered content → structured extraction, with caching and cache validation as first-class features. External dependencies include Playwright for browser automation, httpx/aiohttp for HTTP, lxml for fast parsing, and optional LLM providers (OpenAI, Anthropic, Groq, etc.) and ML models (sentence-transformers). The Docker deployment adds a FastAPI server with JWT auth, Redis-backed job queue, webhook support, MCP bridge, and a monitoring dashboard, all hardened against SSRF, XSS, and file-write attacks. While primarily an application, the repository also contains data-research elements such as adaptive crawling with embedding-based relevance scoring, anti-bot detection heuristics, and content filtering research, reflecting a hybrid character dominated by the application/library use case.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 4 reusable components found
apify/crawlee-python ★ 9590 811 APPLICATION

Crawlee is a production-grade Python web scraping and browser automation framework developed by Apify. It provides a unified async API for both static HTTP crawling (BeautifulSoup, Parsel, raw HTTP) and headless browser automation (Playwright, Stagehand), with an adaptive mode that dynamically chooses between them based on page characteristics. The architecture is modular: a context pipeline chains pre-navigation hooks, HTTP execution (via pluggable clients like httpx, curl-impersonate, or impit), parsing, and post-processing before dispatching to user-defined router handlers. Storage is abstracted behind Dataset, KeyValueStore, and RequestQueue interfaces with multiple backends (memory, filesystem, SQL, Redis). The framework includes autoscaling, session management, proxy rotation, browser fingerprint generation for anti-blocking, OpenTelemetry instrumentation, and a CLI for project scaffolding. It is designed for large-scale crawling with state persistence across runs and supports deployment on Apify, AWS Lambda, and Google Cloud Run.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 5 reusable components found
extractus/article-extractor ★ 1910 158 APPLICATION

This is a Deno/TypeScript library for extracting structured article data (title, content, author, date, image, etc.) from any URL or HTML string. It uses Mozilla's Readability for the core extraction, supplemented by custom metadata extraction from HTML meta tags, JSON-LD schemas, and link elements. The library provides a transformation system that allows per-site pre/post processing of HTML to improve extraction quality, and a flexible HTML sanitizer to control output tags and attributes. The architecture is modular, with clear separation of concerns: retrieval, metadata extraction, URL normalization, readability extraction, sanitization, and transformation. Entry points are `extract()` and `extractFromHtml()`, with optional custom fetch functions and parser options. The codebase is well-tested, actively maintained, and demonstrates solid engineering practices with minimal dependencies.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 5 reusable components found
getanteon/anteon ★ 8517 382 APPLICATION

Anteon (formerly Ddosify) is an open-source platform for Kubernetes monitoring and performance testing. It provides a CLI-based load testing tool (Ddosify) that supports scenario-based testing with dynamic variable injection, extraction from responses, and assertions. Additionally, it includes an eBPF-based agent (Alaz, in a separate repository) for Kubernetes service map creation and real-time metrics collection without sidecars. The self-hosted deployment (in the selfhosted directory) orchestrates the platform using Docker Compose. The core engine is written in Go with a modular architecture, featuring pluggable components for requesters, reporting, and scripting.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 3 reusable components found
kel-z/HSR-Scanner ★ 203 15 APPLICATION

HSR-Scanner is a desktop application that automates the extraction of game data from Honkai: Star Rail using computer vision techniques. It simulates keyboard and mouse inputs to navigate the game's inventory system, captures screenshots of items, and uses OCR (Optical Character Recognition) to extract item statistics. The extracted data is exported to JSON format compatible with third-party optimizers. The application features a PyQt6-based GUI with configurable scan options, hotkeys, and performance tuning parameters.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 4 reusable components found
firecrawl/firecrawl ★ 187567 10003 APPLICATION

Firecrawl is a production-grade web scraping, crawling, and structured data extraction platform designed to feed AI agents and LLMs with clean, markdown-formatted web data. The system exposes a multi-version REST API (v0, v1, v2) with endpoints for scraping single URLs, crawling entire sites, mapping site structures, searching the web, extracting structured JSON, monitoring page changes, and running autonomous AI agents. It supports multiple output formats including markdown, HTML, screenshots, PDF parsing, product/menu extraction, and branding detection. The architecture is a microservices-style monolith with a Node.js/Express API server at its core, backed by Redis for job queues and caching, PostgreSQL for persistent state, ClickHouse for analytics, Bigtable for job access logs, and GCS for blob storage. Background workers handle crawl orchestration, PDF processing, webhook delivery, and billing via RabbitMQ and FoundationDB queues. The platform integrates with external services for threat protection (Google Web Risk, Zscaler), billing (Autumn), search (SearXNG, DuckDuckGo, X Search), and LLM-based extraction (OpenAI, Anthropic). Nine official SDKs (Python, JavaScript/TypeScript, Go, Java, .NET, Ruby, PHP, Rust, Elixir) wrap the API with typed models, error handling, and async support, making it accessible across ecosystems. The codebase is extensive and well-tested, with over 2,000 files spanning controllers, scrapers, transformers, services, and utilities, but shows signs of technical drift through deprecated v0/v1 endpoints, multiple parallel implementations of similar logic (e.g., extract pipelines), and configuration sprawl across environment variables.

RATING: 8.6/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
ScrapeGraphAI/Scrapegraph-ai ★ 31671 3233 APPLICATION

ScrapeGraphAI is a Python library that extracts structured data from websites and local documents using LLM-driven graph pipelines. Instead of a traditional web scraper with hardcoded selectors, users define extraction through natural-language prompts and optional Pydantic schemas; the library then executes a directed graph of nodes such as fetching, parsing, chunking, and answer generation. The public API is a set of graph classes (SmartScraperGraph, SearchGraph, JSONScraperGraph, CSVScraperGraph, SpeechGraph, ScriptCreatorGraph, etc.) in scrapegraphai/graphs, each composing reusable nodes from scrapegraphai/nodes and running them on a BaseGraph execution engine. It is consumed programmatically in Python and supports many LLM providers (OpenAI, Ollama, Groq, Mistral, Anthropic, DeepSeek, xAI, NVIDIA, MiniMax) and multiple fetching backends (Playwright, Selenium, Chromium, BrowserBase, Scrape.do). The architecture is a lightweight DAG framework: nodes have typed inputs/outputs, can branch conditionally, iterate, merge results, and accumulate cost/token metadata; BaseGraph walks the graph, handles state, and collects execution information. The repository also contains document loaders, model token/cost registries, prompt templates, telemetry, proxy rotation, screenshot-scraping utilities, a GraphBuilder that constructs graphs from natural language, and integrations such as Burr and Indexify. While the README aggressively promotes a commercial hosted API at scrapegraphai.com, the repository itself is a self-contained open-source library with examples and tests. The codebase is generally well structured and modular, with clear separation between graphs, nodes, prompts, helpers, utils, and models. It shows signs of rapid growth: some typos, duplicated test fixtures, hardcoded model pricing tables, a Python version mismatch between pyproject and Dockerfile, and dependency fragility around LangChain and optional browser/OCR packages. These issues are manageable but give the codebase a medium technical drift. Overall it is an active, useful library for LLM-based extraction, and several utilities are good candidates for reuse outside the project.

RATING: 8.4/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
marcelscruz/public-apis ★ 9577 1249 DATA_RESEARCH

This repository is a curated directory of public APIs, maintained as a human-readable Markdown table in `README.md` and automatically transformed into structured JSON files (`db/resources.json`, `db/categories.json`) via a Node.js generator. The primary data flow is: community contributions (PRs) update the README table → a GitHub Actions workflow runs `scripts/db/update-db.js` on every push to `main` → the script parses the Markdown using `remark-parse`, extracts categories and API entries, normalizes auth and CORS fields, and writes the JSON output back to the repository. The generated JSON serves as a machine-consumable API catalog for developers and tools (e.g., the companion website publicapis.dev). The repository is fundamentally a data_research project: its core value is the curated dataset of 1,800+ APIs with metadata (name, description, auth type, CORS support, category). The only 'application' component is the lightweight generator script and its utility modules, which are well-structured but tightly coupled to the specific Markdown format. There are no tests, no runtime services, and no external data sources beyond the README itself. The dataset is manually curated via pull requests, which introduces maintenance risks (stale links, incomplete metadata) but also ensures human oversight of quality. For reproducibility, an analyst can clone the repo, run `npm install` (dependencies are locked via `package-lock.json`), and execute `npm run build` to regenerate the JSON from the README. The entire pipeline is self-contained and does not require external credentials or data. However, the lack of unit tests means that changes to the parsing logic could silently break the output.

RATING: 8.2/10 REPRO: 8.0/10 MAINT: active DRIFT: low
▸ 3 reusable components found
mrshu/github-statuses ★ 565 25 APPLICATION

This repository implements a static site that reconstructs and visualizes GitHub's historical status incidents and downtime. It ingests the official GitHub Status history Atom feed (committed into git via Flat Data), parses entries into structured incident timelines with status transitions, downtime windows, and impacted components. The frontend displays a 90-day and all-time uptime overview, per-service uptime bars, an incident timeline with filters, and a rolling uptime chart. The system is designed as a data pipeline: a GitHub Action fetches the Atom feed daily, another Action runs the extractor script to produce parsed artifacts (CSV, JSONL), and a third Action deploys the static site to GitHub Pages. The repository also includes an experimental GLiNER-based component extraction fallback to infer affected services from incident postmortems when the structured data is missing. The codebase demonstrates strong craftsmanship with well-isolated pure functions, testable frontend modules, and defensive caching patterns, though it remains tightly coupled to GitHub's specific status page format and prose patterns.

RATING: 8.2/10 MAINT: active DRIFT: low
▸ 3 reusable components found
saifyxpro/HeadlessX ★ 2287 276 APPLICATION

HeadlessX is a self-hosted web scraping and browser automation platform with anti-detection capabilities. It provides a Next.js 16 dashboard, an Express 5 API with Prisma/PostgreSQL, a BullMQ queue worker, and a published CLI. The core value proposition is anti-detection scraping via the headfox-js package (Camoufox-compatible Firefox bundles), fingerprint generation, CAPTCHA solving, and LLM-friendly markdown output. The system supports multiple operators: website scraping/crawling/mapping, Google AI Search, Tavily search, Exa search, and YouTube extraction. It includes sidecar services for HTML-to-Markdown (Go) and YouTube extraction (Python FastAPI). The architecture is a monorepo with Nx orchestration, Docker Compose deployment, and an MCP endpoint for AI assistant integration. External dependencies include Redis, Postgres, Playwright, MaxMind GeoIP, and external APIs (Tavily, Exa, Google). The codebase is well-structured with clear separation of concerns, modern TypeScript, and reusable patterns in both frontend and backend.

RATING: 8.1/10 MAINT: active DRIFT: low
▸ 2 reusable components found
a-maliarov/amazoncaptcha ★ 493 90 APPLICATION

amazoncaptcha is a pure Python library for solving Amazon's image-based text captchas. It does not rely on external OCR or machine learning models; instead, it uses a custom algorithm that converts the captcha image to monochrome, segments individual letters, and matches each extracted letter against a precomputed library of compressed patterns (stored as zlib-compressed byte strings in JSON files). The library provides a simple API: the `AmazonCaptcha` class can be instantiated with an image file path, URL, or a Selenium WebDriver screenshot, and its `solve()` method returns the predicted captcha text. The architecture is monolithic: a single package with image processing utilities (utils.py), the solving logic (solver.py), optional data collection tools (devtools.py), and embedded training data for letters A–Z. Externally, it depends on Pillow for image manipulation and requests for downloading captchas from URLs. The solver is designed for high accuracy (claimed 99.9% on various tests) and lightness, making it suitable for web automation and scraping tasks that encounter Amazon captchas. While the core algorithm is elegant and self-contained, its effectiveness is tightly coupled to the specific font, distortion, and noise patterns used by Amazon in its captchas. Any change to Amazon's captcha design would likely require retraining or updating the embedded pattern database. The repository also includes a test suite, CI configuration, and documentation for integration with Selenium.

RATING: 7.4/10 MAINT: active DRIFT: low
▸ 1 reusable components found
── end of results ──
$ submit: