bjesus

pipet: Scrape and Extract Data from the Web

Pipet is a command-line tool for extracting data from HTML pages, JSON endpoints, and JavaScript-rendered websites. It suits developers and technically minded users who want reusable scraping queries, shell-pipeline processing, or change monitoring.

View on GitHub Compare
Stars
4.8k
Forks
222
Stars, last 30 days
+7

Our take

Health score

18/100

How it is scored
Activity
19
Community
13
Issues
21
Pull requests
20

+7 stars in the last 30 days

  • Fewer contributors than 86% of the projects we track

Project history

Daily GitHub snapshots since Oct 7, 2026. History covers stars and forks; health signals are not tracked historically.

Selected snapshot

Stars

4,777

Forks

223

Change since Nov 13, 2026: +1 stars·0 forks

Overview

Pipet turns web data extraction into a set of reusable text-file queries. It can fetch resources with curl, parse HTML using CSS selectors, query JSON with GJSON syntax, or evaluate JavaScript in a Playwright browser. Results can be structured as text or JSON and passed through Unix tools.

It is most useful when you want a small, scriptable way to collect information without building a dedicated scraper application. Its command-line workflow favors users comfortable with selectors, shell commands, and editing configuration files.

Key Features

  • Extract HTML content with nested CSS selector queries.
  • Select values from JSON responses using GJSON syntax.
  • Run JavaScript against pages loaded in a headless Playwright browser.
  • Process query results with Unix pipes and external tools.
  • Output results as JSON, customize text separators, or render results with a template.
  • Follow next-page links for HTML scraping, with a configurable maximum page count.
  • Rerun a query on an interval and execute a command when results change.
  • Use copied cURL requests, including headers and cookies, for access to data behind login pages or bot checks.

Use Cases

  • A developer can collect headlines, links, or other structured page content for a personal script.
  • A user can watch a page for changes, such as a ticket listing becoming available, and trigger a notification command.
  • Someone working with an API can select fields from JSON and pass them through jq or other shell tools.
  • A researcher or hobbyist can periodically gather public information such as weather, transit departures, or shipment status.

Getting Started

Install with Go and run a query file:

go install github.com/bjesus/pipet/cmd/pipet@latest
pipet hackernews.pipet

See the README for query syntax, installation options, and examples.

Alternatives

  • Scrapling: Scrapling is a Python scraping library with adaptive selectors and stealth features, while pipet is a Go command-line tool for reusable extraction queries.
  • sitefetch: sitefetch saves matched website pages as plain text, while pipet extracts selected data from HTML, JSON endpoints, and JavaScript-rendered sites.
ProjectLanguageLicenseStarsStatus
pipetGoMIT4.8kNot checked yet
ScraplingPythonBSD-3-Clause86.2kActive
sitefetchTypeScriptMIT1.7kInactive

Considerations

Pipet is a command-line tool rather than a managed scraping service. It relies on external command-line tools such as curl and supports Unix pipes; JavaScript-rendered pages require a Playwright browser, which Pipet may download if one is not installed. Web page structure and access policies can change, so selectors and requests may need maintenance.

Found this useful?

Share it with someone who would like pipet.

Comparisons