Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

jq, but for HTML

License

NotificationsYou must be signed in to change notification settings

orf/html-query

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Crates.io

jq, but for HTML.Try it in your browser here

hq reads HTML and converts it into a JSON object based on a series of CSS selectors. The selectors are expressedin a similar way to JSON, but where the values are CSS selectors. For example:

{posts: .athing | [ {title: .titleline > a, url: .titleline > a | @(href)} ] }

This will select all.athing elements, and it will create an array (| [{...}]) of objects for each element selected.Then for each element it will select the text of thetitleline > a element, and thehref attribute (| @(href)).

The end result is the following structure:

{"posts": [    {"title":"...","url":"..."    }  ]}

Install

brew install hq, orcargo install html-query

Special query syntax

Text

.foo | @text

This will select the text content from the first element matching.foo.

Selecting attributes

.foo | @(href)

This will select thehref attribute from the first element matching.foo.

Parents

.foo | @parent

This will return the parent element from the first element matching.foo.

Siblings

.foo | @sibling(1)

This will return the sibling element from the first element matching.foo.

Examples

Full hacker news story extraction

{posts: .athing | [{href: .titleline > a | @(href), title: .titleline > a, meta: @sibling(1) | {user: .hnuser, posted: .age | @(title) }}]}

This selects each.athing element, extracts the URL from thehref attribute as well as the title. It then selectsthesibling.athing element, and extracts the user and post time from that:

{"posts": [    {"title":"...","url":"...","meta": {"posted":"...","user":"..."      }    }  ]}

About

jq, but for HTML

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors2

  •  
  •  

[8]ページ先頭

©2009-2025 Movatter.jp