Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Shell
  3. xidel

xidel

GPL-3.0PascalXidel_0.9.8

A command-line tool to extract data from HTML/XML pages and JSON APIs using CSS, XPath, XQuery, JSONiq, and pattern matching.

Visit WebsiteGitHubGitHub
836 stars47 forks0 contributors

What is xidel?

Xidel is a command-line tool for downloading and extracting data from HTML, XML, and JSON sources, including web pages and REST APIs. It supports multiple query languages like CSS selectors, XPath, XQuery, and JSONiq, allowing users to scrape, transform, and generate structured documents. It solves the problem of programmatically accessing and processing web data without relying on browser automation or complex scripting.

Target Audience

Developers, data engineers, and researchers who need to automate web scraping, extract data from APIs, or transform web content into structured formats from the command line.

Value Proposition

Xidel stands out by supporting a wide range of query languages in a single tool, offering dependency-free binaries for major platforms, and enabling complex data extraction and transformation workflows with simple commands.

Overview

Command line tool to download and extract data from HTML/XML pages or JSON-APIs, using CSS, XPath 3.0, XQuery 3.0, JSONiq or pattern matching. It can also create new or transformed XML/HTML/JSON documents.

Use Cases

Best For

  • Scraping data from websites using CSS selectors or XPath
  • Extracting JSON data from REST APIs with JSONiq queries
  • Transforming HTML/XML documents into JSON or other formats
  • Automating multi-page web scraping with link following
  • Command-line data extraction without browser automation
  • Processing web data in shell scripts or pipelines

Not Ideal For

  • Projects scraping JavaScript-heavy single-page applications (SPAs) that require browser automation
  • Large-scale distributed web scraping tasks needing built-in concurrency and job management
  • Teams integrated into Python or JavaScript ecosystems preferring language-specific libraries like Scrapy or Puppeteer

Pros & Cons

Pros

Extensive Query Language Support

Supports CSS selectors, XPath 2.0/3.0, XQuery 1.0/3.0, and JSONiq, enabling flexible data extraction from HTML, XML, and JSON, as demonstrated in the README's language examples.

Cross-Platform Dependency-Free Binaries

Provides pre-compiled executables for Windows, Linux, and macOS, simplifying installation without external dependencies, as highlighted in the README.

Built-in Link Following

Automatically follows links with commands like `--follow //a` for multi-page scraping, streamlining workflows as shown in the simple example.

Powerful Data Transformation

Can create and transform XML, HTML, and JSON documents from extracted data, supporting complex processing, per the key features description.

Cons

No JavaScript Execution

Lacks ability to render or execute JavaScript, making it ineffective for dynamic websites that load content client-side, a limitation not addressed in the README.

Niche Ecosystem and Community

Written in Pascal and wraps Pascal Internet Tools, resulting in a smaller community and fewer resources compared to mainstream tools like Python libraries.

Complex Compilation Setup

Compiling from source requires Lazarus IDE or build scripts, which can be cumbersome for users not familiar with Pascal, as noted in the installation section.

Frequently Asked Questions

Quick Stats

Stars836
Forks47
Contributors0
Open Issues22
Last commit1 year ago
CreatedSince 2015

Tags

#rest#css-selectors#http#rest-api#command-line-tool#html-parsing#html#xquery#xml#cli#web#web-scraping#command-line#json#data-extraction#xpath#xml-parsing

Links & Resources

Website

Included in

Shell36.8k
Auto-fetched 5 hours ago

Related Projects

jqjq

Command-line JSON processor

Stars34,608
Forks1,772
Last commit6 days ago
fxfx

Terminal JSON viewer & processor

Stars20,442
Forks479
Last commit1 month ago
yqyq

yq is a portable command-line YAML, JSON, XML, CSV, TOML, HCL and properties processor

Stars15,331
Forks770
Last commit3 days ago
visidatavisidata

A terminal spreadsheet multitool for discovering and arranging data

Stars9,063
Forks345
Last commit9 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub