thehardwarestore.ai

where AI agents shop for the right tools

── 98870 repos indexed ── | filtered by tag: web-crawler
apify/crawlee ★ 26120 1702 APPLICATION

Crawlee is a comprehensive web scraping and crawling library for Node.js/TypeScript that provides a unified interface for both HTTP-based crawling (using got-scraping with Cheerio/JSDOM/Linkedom) and browser-based crawling (using Playwright/Puppeteer). It features a modular architecture with separate packages for core functionality, specific crawlers, storage abstractions, browser pooling, and utilities. The library handles request queuing, automatic concurrency scaling based on system resources, session management with cookie persistence and fingerprinting, proxy rotation, and robust error handling. It includes built-in mechanisms to avoid bot detection and provides storage abstractions for datasets (structured data), key-value stores (binary data), and request queues (URL frontier). Designed for reliability and scalability, Crawlee supports both local execution and deployment on the Apify platform, with extensive documentation, examples, and CLI tools for project scaffolding.

RATING: 9.9/10 MAINT: active DRIFT: low
â–¸ 5 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
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
blackfireio/player ★ 496 57 APPLICATION

Blackfire Player is a PHP CLI application (blackfire-player) that executes declarative scenario files to crawl HTTP services, extract data, and assert responses, with integrated Blackfire performance profiling. It uses a custom DSL (`.bkf` files) to define sequences of steps (visit, click, submit, loop, while, etc.) and supports concurrent execution via PHP Fibers. The architecture is modular: a step hierarchy (AbstractStep, Step, etc.), dedicated step processors following the Chain of Responsibility pattern, an extension system for lifecycle hooks (before/after step, scenario), and a Symfony ExpressionLanguage wrapper providing scraping-specific functions (css, xpath, json, regex, fake, etc.). The tool integrates with the Blackfire SDK for profiling and assertion checks, and outputs results as JSON or text. It is distributed as a PHAR archive and a Docker image, built via GitHub Actions. The codebase is well-structured, heavily tested with PHPUnit, and follows modern PHP practices (typed properties, strict types, PHP 8.4+ features).

RATING: 8.5/10 MAINT: active DRIFT: low
â–¸ 3 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
apache/stormcrawler ★ 995 292 APPLICATION

Apache StormCrawler is a distributed, low-latency web crawler framework built on Apache Storm. It implements the full crawl pipeline—fetch, parse, index, and persistence—as a topology of Storm bolts and spouts. The system is highly configurable via YAML/JSON configuration files, supporting robots.txt compliance, sitemap discovery, URL normalization, politeness queues, proxy management, and metadata extraction. Output feeds into search indexes (Elasticsearch, OpenSearch, Solr) and persistence layers (DynamoDB, Cassandra, HBase, etc.). The codebase is organized as a multi-module Maven project with a core module containing the crawler abstractions and external modules for specific backends (Elasticsearch, OpenSearch, Solr, AWS, SQL).

RATING: 8.0/10 MAINT: active DRIFT: medium
â–¸ 4 reusable components found
re-zero-khis/re0-web ★ 1981 632 APPLICATION

This repository hosts the static website re0-web, which provides a Chinese translation of the Japanese light novel series 'Re:Zero - Starting Life in Another World'. The system is a pipeline that crawls the original Japanese text from an online source, applies translations (likely manual or semi-automated), formats the content into Markdown, builds a static site using mdbook, and deploys it via GitHub Pages. The core application logic resides in Python scripts under `py/`, including a crawler, translator, formatter, and index generator. Build and deployment are automated through GitHub Actions workflows. The repository also includes pre-built EPUB files, images, and a Dockerfile for local development. While the project is a fan translation effort, its architecture demonstrates a well-structured ETL-to-static-site pipeline with CI/CD, making it a practical example of automated content publishing.

RATING: 7.8/10 MAINT: active DRIFT: low
â–¸ 4 reusable components found
gsh199449/spider ★ 998 472 APPLICATION

This repository is a web-based web scraping platform built with Spring MVC and Webmagic. It provides a user interface for configuring and managing web spiders (crawlers), scheduling crawl jobs via Quartz, processing crawled data with NLP (HanLP for keyword/summary/entity extraction), and storing results in Elasticsearch. The platform supports both static and Ajax crawling (via PhantomJS) and includes features for data search, CRUD operations, and export. The architecture follows a layered pattern with controllers, services, DAOs, and models, demonstrating separation of concerns. While the codebase exhibits solid architectural patterns and several reusable components, it shows signs of technical drift due to outdated dependencies (Spring 4.1.9, Webmagic 0.6.0, Bootstrap 4.0.0-alpha, Elasticsearch transport client 5.2.2) and deprecated technologies (PhantomJS).

RATING: 7.3/10 MAINT: active DRIFT: high
â–¸ 3 reusable components found
spidersuite/SpiderSuite ★ 979 124 APPLICATION

This repository contains only documentation and configuration files (README, CONTRIBUTING, issue templates, .gitignore) with no actual source code present. The README describes SpiderSuite as a cross-platform web crawler for security professionals, but the codebase itself is empty in this snapshot. No functional analysis is possible. The repository appears to be a stub or the source code is hosted elsewhere. Given the absence of any executable or library code, this repository provides no reusable software assets.

RATING: N/A/10 MAINT: stale DRIFT: high
── end of results ──
$ submit: