🛠️ Как использовать htmlq для парсинга содержимого из HTML-файлов на Linux, macOS или FreeBSD

Мануал

Большинство из нас любят и используют команду jq.

Она работает в Linux или Unix-подобных системах для извлечения данных из JSON-документов.

Недавно я нашел htmlq, который похож на jq и написан на языке Rust.

🐍 Как парсить и скрейпить HTML с помощью Pyquery

Представьте себе, что вы можете использовать sed или grep для работы с HTML-данными.

С помощью htmlq мы можем искать, нарезать и фильтровать HTML-данные.

Давайте посмотрим, как установить и использовать этот удобный инструмент в Linux или Unix и поиграть с HTML-данными.

Что такое инструмент htmlq?

Он похож на jq, но для HTML.

Использует селекторы CSS для извлечения фрагментов содержимого из файлов HTML.

В CSS селекторы используются для выделения элементов HTML на наших веб-страницах, которые мы хотим стилизовать.

Например, с помощью этого инструмента можно легко извлечь изображения или другие URL-адреса.

Установка htmlq на Linux или Unix

Вот как установить cargo и rustc на Ubuntu или Debian Linux с помощью команды apt/apt-get:

sudo apt install cargo

а затем:

cargo install htmlq

macOS – установка cargo

Откройте приложение Terminal и выполните команду port следующим образом:

sudo port install cargo

Или вы можете установить Homebrew на macOS, чтобы использовать менеджер пакетов brew следующим образом:

brew install rustup # installs both cargo and rustc
rustup-init
rustc --version

🍺 Что такое Homebrew и как его установить на MacOS?

FreeBSD – установка cargo

Я собираюсь использовать команду pkg следующим образом для установки rustc:

sudo pkg install rust

Теперь, когда у меня есть и rustc, и инструменты cargo, я набираю следующую простую команду:

cargo install htmlq

Убедитесь, что вы добавили $HOME/.cargo/bin в переменную PATH, чтобы иметь возможность запускать установленные бинарники с помощью команды export

# sh/bash/ksh etc
export PATH="$PATH:$HOME/.cargo/bin" 
 
# tcsh/csh etc
setenv PATH $PATH:$HOME/.cargo/bin

Как использовать htmlq для извлечения содержимого из HTML-файлов в Linux или Unix

Давайте воспользуемся командой curl, чтобы найти часть страницы по ID:

curl -s url | htmlq ‘#css-selector’
curl -s url2 | htmlq ‘#css-selector’
curl -s https://www.itsecforu.ru/ | htmlq –pretty ‘#content’ | more

Давайте найдем все ссылки на странице.

Например:

curl -s https://www.itisgood.ru | htmlq --attribute href a

Получение помощи

Просто запустите:

htmlq 0.0.1
Michael Maclean <michael@mgdm.net>
Runs CSS selectors on HTML
 
USAGE:
    htmlq [FLAGS] [OPTIONS] <selector>...
 
FLAGS:
    -h, --help                 Prints help information
    -w, --ignore-whitespace    When printing text nodes, ignore those that consist entirely of whitespace
    -p, --pretty               Pretty-print the serialised output
    -t, --text                 Output only the contents of text nodes inside selected elements
    -V, --version              Prints version information
 
OPTIONS:
    -a, --attribute <attribute>    Only return this attribute (if present) from selected elements
    -f, --filename <FILE>          The input file. Defaults to stdin
    -o, --output <FILE>            The output file. Defaults to stdout
 
ARGS:
    <selector>...    The CSS expression to select

Заключение

htmlq – действительно прекрасный инструмент, и мне он очень понравился.

Попробуйте его и дайте мне знать, что вам в нем понравилось, в разделе комментариев ниже.

 

Добавить комментарий