Manipular sitemap.xml em CLI

Nem sempre procuro dentro do sitemap.xml de um domínio, mas quando o faço, tenho que baixar todos os URLs listados em um lote

Abrir o XML na janela do navegador e copiar / colar links um por um é simplesmente inaceitável. Na maioria das vezes, isso será suficiente para verificar rapidamente o conteúdo de um arquivo de mapa do site durante a sessão de terminal:

curl -Lq http://sysd.org/sitemap.xml | grep -w loc

No entanto, essa abordagem se baseia em XML aprimorado (quebras de linha entre os nós de URL). E mesmo assim, os URLs são cercados por <loc>...</loc>tags. Portanto, essa saída não pode ser direcionada para curl(nor wget) ainda.

Digite Mojolicious , auto-descrito como um framework da web de próxima geração para a linguagem de programação Perl . É perfeito para escrever one-liners habilitados para web .

Então, é assim que lido rapidamente sitemap.xmlhoje:

perl -Mojo -le 'g($ARGV[0])->dom->find("loc")->each(sub{print shift->content_xml})' http://sysd.org/sitemap.xml

Este one-liner analisa sitemap.xmlcomo uma árvore DOM e gera um URL por linha. Você pode canalizá-lo para vim -revisar a lista de links manualmente ou até mesmo wget -i -para buscar tudo. Com pequenos ajustes, também é possível manipular índices de mapa de site.