selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

GitHub
crawler-buddy logo

Self-host crawler-buddy

6.2.11

HTTP crawling server with unified JSON API for web scraping

ReleaseOpen SourceGPL-3.0
Updated4 months ago
LanguageHTML
Setup difficultyModerate
Stars
258
Port
3000 (HTTP crawling server API)
Docker
rozbujnik/crawler-buddy
Install with Docker Compose
crawler-buddy screenshot 1crawler-buddy screenshot 2crawler-buddy screenshot 3

What is crawler-buddy?

Crawler Buddy is a self-hosted HTTP crawling server that delivers web content and metadata in a consistent JSON format. It provides a unified interface for extracting titles, descriptions, thumbnails, publication dates, RSS feed URLs, social media data, and link metadata from web pages. The server supports multiple crawling methods including Requests, Selenium (headless and full), curl-cffi, httpx, stealth-requests, Crawlee (BeautifulSoup and Playwright), and Scrapy, with automatic method selection based on URL patterns. It can discover RSS feeds for websites and YouTube channels, extract social media metrics from platforms like YouTube, HackerNews, GitHub, and Reddit, and parse RSS/Atom, OPML, and HTML files. The server runs as a Flask application on port 3000 and is deployed via Docker Compose, which includes Chrome and Chromedriver for browser-based crawling. All responses are UTF-8 encoded. The project is licensed under GPL-3.0 and written in Python.

Should you self-host crawler-buddy?

crawler-buddy scores 43/100 on selfhost.directory (how scoring works) and ranks #14 of 16 in Web Scraping. It has 258 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is GPL-3.0-licensed and written mostly in HTML.

Its closest alternative on selfhost.directory is firecrawl (91/100, 196 199 stars). It scores higher overall, so compare the two before you pick. See crawler-buddy vs firecrawl side by side.

Features

  • Automatic RSS feed discovery
  • Crawl history and queue management
  • Link and domain scanning
  • Multiple crawling backends
  • RSS/Atom/OPML/HTML file parsing
  • Social media metadata extraction
  • Unified JSON API for web crawling
  • URL-based crawler selection
  • Web archive integration

crawler-buddy README

How to install crawler-buddy

Install crawler-buddy with Docker Compose

Environment variables
ALLOWED_IP, CRAWLER_BUDDY_PORT

version: '3.7' services: crawlerbuddy: image: rozbujnik/crawler-buddy container_name: crawlerbuddy build: context: . dockerfile: Dockerfile ports: - 3000:3000 environment: # could be localhost ALLOWED_IP: "192.168.0.1" CRAWLER_BUDDY_PORT: 3000

Recommended installation method per documentation

How to configure crawler-buddy

  • ALLOWED_IP192.168.0.1IP address allowed to access the server (could be localhost)

    IP address allowed to access the server (could be localhost)

  • CRAWLER_BUDDY_PORT3000Port the server listens on

    Port the server listens on

  • hostServer host address

    Server host address

  • max_history_recordsMaximum number of history records to keep

    Maximum number of history records to keep

  • portServer port

    Server port

  • time_cache_minutesTime cache duration in minutes

    Time cache duration in minutes

FAQ

How to use the output programmatically?

Use the RemoteServer and Url classes from the webtoolkit library.

Does it support proxy?

Initial proxy support exists for Selenium but is unverified as the author does not use proxies.

What if someone wants to make two parallel crawling methods, to make crawling faster?

Call the /getj endpoint twice with different crawling methods and use the first received response.

More in Web Scraping

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…