wget não salvando links no formato desejado

1

Quando eu uso um navegador para salvar esta página: link os links são salvos de tal forma que eles se conectam ao conteúdo. como isso: href="http://maine.craigslist.org/fuo/4323535885.html"

quando tento usar o wget, os links são

$ wget --no-parent maine.craigslist.org/fuo

salvo como: href="/ fuo / 4305913395.html"

Eu tentei opções:

--spider
--page-requisites 
--user-agent="Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:27.0) Gecko/20100101  Firefox/27.0"

mas todos os links saem sem o URL anexado.

Eu tenho o restante do script trabalhando, para analisar minha localização e fazer uma nova lista de links para móveis na minha área. Mas não consigo descobrir como obter a mesma saída que recebo quando salvo a página pelo firefox.

Eu pensei que usar o wget seria mais simples. Talvez isso não esteja certo. Se eu puder obter o mesmo efeito usando algum outro software, desde que eu possa escrever um script para que ele funcione, eu ficarei feliz.

    
por j0h 18.02.2014 / 20:41

2 respostas

3

A opção --convert-links deve fazer o que você está procurando:

wget --convert-links --no-parent maine.craigslist.org/fuo

Mais informações sobre essa opção e o que ela faz está abaixo (copiada de man wget ):

   --convert-links
       After the download is complete, convert the links in the document
       to make them suitable for local viewing.  This affects not only the
       visible hyperlinks, but any part of the document that links to
       external content, such as embedded images, links to style sheets,
       hyperlinks to non-HTML content, etc.

       Each link will be changed in one of the two ways:

       ·   The links to files that have been downloaded by Wget will be
           changed to refer to the file they point to as a relative link.

           Example: if the downloaded file /foo/doc.html links to
           /bar/img.gif, also downloaded, then the link in doc.html will
           be modified to point to ../bar/img.gif.  This kind of
           transformation works reliably for arbitrary combinations of
           directories.

       ·   The links to files that have not been downloaded by Wget will
           be changed to include host name and absolute path of the
           location they point to.

           Example: if the downloaded file /foo/doc.html links to
           /bar/img.gif (or to ../bar/img.gif), then the link in doc.html
           will be modified to point to http://hostname/bar/img.gif.

       Because of this, local browsing works reliably: if a linked file
       was downloaded, the link will refer to its local name; if it was
       not downloaded, the link will refer to its full Internet address
       rather than presenting a broken link.  The fact that the former
       links are converted to relative links ensures that you can move the
       downloaded hierarchy to another directory.
    
por kiri 24.02.2014 / 21:40
0

Se você visualizar a origem da página on-line em seu navegador, verá que os links são relativos no documento. O navegador os converte automaticamente, mas o wget não pode fazer isso.

Para que a página seja exibida corretamente em um navegador, a solução seria usar a HTML < base > Tag . Basta adicionar <base href="http://maine.craigslist.org/fuo"> à seção head dos arquivos baixados e todos os links apontarão para o local absoluto correto. Você pode fazer isso automaticamente no seu script.

Se você quiser que seu script realize ações adicionais nos links, a melhor solução seria fazer com que o script adicionasse o URL base na frente de cada link.

    
por Donarsson 24.02.2014 / 21:30