Torna todos os urls em uma página absoluta a partir da linha de comando

1

Eu gosto de usar curl e a linha de comando para processar páginas html.

URLs relativos são uma dor.

Existe algum utilitário fácil para tornar todos os URLs relativos absolutos?

Idealmente, isso seria parecido com

curlabsolute $URL | process
    
por Att Righ 17.10.2017 / 22:26

1 resposta

2

O que você precisa é de wget utulity:

Digamos que precisamos fazer o download de uma página da web simples fornecida por http://www.littlewebhut.com/articles/simple_web_page/ .

O comando (o abaixo usado url é real, o comando pode ser testado "como está"):

wget -O simple_page -k http://www.littlewebhut.com/articles/simple_web_page/
  • -O ( --output-document=file ) - Os documentos não serão gravados nos arquivos apropriados, mas todos serão concatenados juntos e gravados em file .

  • -k ( --convert-links ) - Após a conclusão do download, converta os links no documento para torná-los adequados à visualização local

Vou apenas demonstrar algum fragmento html de contexto da página da web mencionada antes de fazer o download (online varsion):

...
<ul>
          <li><a href="/" class="color-menu">Home</a></li>
          <li><a href="/html/" class="color-menu">HTML</a></li>
          <li><a href="/css/" class="color-menu">CSS</a></li>
          <li><a href="/javascript/" class="color-menu">JavaScript/jQuery</a></li>
          <li><a href="/inkscape/" class="color-menu">Inkscape</a></li>
          <li><a href="/gimp/" class="color-menu">GIMP</a></li>
          <li><a href="/blender/" class="color-menu">Blender</a></li>
          <li><a href="/articles/" class="color-menu">Articles</a></li>
          <li><a href="/contact/" class="color-menu">Contact</a></li>
        </ul>

O mesmo fragmento após o download, salvo no arquivo simple_page :

...
<ul>
          <li><a href="http://www.littlewebhut.com/" class="color-menu">Home</a></li>
          <li><a href="http://www.littlewebhut.com/html/" class="color-menu">HTML</a></li>
          <li><a href="http://www.littlewebhut.com/css/" class="color-menu">CSS</a></li>
          <li><a href="http://www.littlewebhut.com/javascript/" class="color-menu">JavaScript/jQuery</a></li>
          <li><a href="http://www.littlewebhut.com/inkscape/" class="color-menu">Inkscape</a></li>
          <li><a href="http://www.littlewebhut.com/gimp/" class="color-menu">GIMP</a></li>
          <li><a href="http://www.littlewebhut.com/blender/" class="color-menu">Blender</a></li>
          <li><a href="http://www.littlewebhut.com/articles/" class="color-menu">Articles</a></li>
          <li><a href="http://www.littlewebhut.com/contact/" class="color-menu">Contact</a></li>
        </ul>
    
por 17.10.2017 / 23:35