O XIDEL é uma ferramenta de linha de comando para baixar e extrair dados das páginas HTML/XML usando seletores CSS, XPath/XQuery 3.0, além de consultar arquivos JSON ou APIs (por exemplo, REST) usando o JSONIQ.
Existem binários sem dependência para Windows, Linux e Mac.
É um invólucro em torno das minhas ferramentas de Internet Pascal (consulte Repositório Internetols), por isso suporta XPath 2.0, XPath 3.0, XQuery 1.0, XQuery 3.0, JSONIQ, CSS Selectors e minhas próprias extensões/idiomas (EG Pattern Matching) e, se você pode compilar esse projeto, pode compilar Xidel.
Um exemplo simples para retornar os títulos de todas as páginas vinculadas por alguma página inicial:
xidel http://example.org --follow //a --extract //title
ou mais simples
xidel http://example.org -f //a -e //title
O idioma pode ser explicitamente escolhido. Por exemplo
xidel input.html --css 'a'
xidel input.html --xpath '//a/@href'
xidel input.html --xquery 'for $var in //a order by $var return $var'
Retorna todos os links, o URI de destino de cada link ou o texto de todos os links em ordem alfabética.
Existem mais exemplos na página acima com binários, o Wiki do Github e nos exemplos de diretório.
Você pode compilá -lo chamando build.sh e instalá -lo chamando build.sh -t . Como alternativa, você pode compilá -lo com o Lazarus IDE.
Você pode chamar os comandos do script .Travis.yml para baixar dependências.