Como obter URLs de todas as imagens em uma página, editá-las e fazer o download

3

Aqui está uma tarefa:

Uma página tem 300 imagens JPEG com URLs como http://example.com/gallery/500px-500px/7496.jpg

Eu quero editar esses URLs para http://example.com/gallery/1000px-1000px/7496.jpg

e baixar em melhor qualidade.

Como eu alcanço a tarefa agora: abro uma página da web e baixo todas as imagens para uma pasta com qualquer gerenciador de downloads. Então eu crio uma lista de nomes da imagem com cd c:\download + dir *.* > list.txtcomandos e adiciono a url http://example.com/gallery/1000px-1000px/com os nomes dos arquivos. Depois disso, faço o download dos novos URLs usando qualquer gerenciador de arquivos.

Como tornar esse processo de download mais fácil e rápido? Obrigado!

Vasko-Sisko
fonte
Uma vez que o seu gerenciador de downloads tenha analisado com sucesso a página da web e adicionado todos os links da imagem, você não pode simplesmente exportar a lista para um arquivo de texto, pesquisar + substituir, importar e baixar?
Karan
seria bom; você pode sugerir tal gerente? Porque o meu não tem esses recursos. Seria ainda melhor obter uma extensão do Google Chrome.
Vasko-Sisko
Você disse "Eu abro uma página web e baixo todas as imagens para uma pasta com qualquer gerenciador de downloads", então eu pensei que você já tinha uma que fez isso. Como você está fazendo agora? Copiando manualmente todos os 300 links para o seu DM? Além disso, qual sistema operacional você está usando?
Karan
Win 8, eu baixá-los com o Image Downloader for Chrome, não posso copiar links dele. Ok, o Download Master for Chrome permite que eu copie todos os links, pesquiso e substituo no Word. Como posso baixá-los novamente? O Download Master não tem esse recurso ... Eu quero usar o multifuncional.
Vasko-Sisko
está em pedidos abertos !!!
Vasko-Sisko

Respostas:

1

Escrevi uma extensão do Google Chrome para fazer download de arquivos de uma lista que você colou ou dos URLs de guias abertas em uma janela.

É chamado de TabSave , disponível aqui e de código aberto (veja a descrição da loja virtual).

A resposta de Zeel parece perfeitamente bem. Haverá muitos outros tutoriais sobre como obter links de uma página da Web se você fizer uma rápida pesquisa on-line. As configurações de segurança da extensão do Chrome dificultam a comunicação com a página, mas, depois de ter essa lista de URLs, essa extensão pode lidar com os downloads.

Louis Maddox
fonte
0

A maneira mais fácil é fazer um script em algum idioma que seja confortável para você.

Uma possibilidade é ter um bookmarklet que faça isso, escrito em Javascript. Ele usa o DOM para reescrever as URLs e, em seguida, você faz o download da página completa com as URLs reescritas.

Você pode tentar algo assim:

javascript:(function() {
  var i, imgs;
  imgs = $$('img');
  for (i=0; i < imgs.length; i++){
    imgs[i].src = imgs[i].src.replace('500px-500px', '1000px-1000px');
  }
})();

Outra possibilidade é usar uma linguagem de servidor (por exemplo, Python) no seu computador que irá obter a página da Web e, em seguida, as imagens, mas isso requer a instalação de um intérprete ou algo assim.

Você deve definir um link como este em sua barra de favoritos: [Imagens grandes!] [1]

[1]: javascript: (function () {var i, imgs; imgs = $$ ('img'); para (i = 0; i <imgs.length; i ++) {imgs [i] .src = imgs [ i] .src.replace ('500px-500px', '1000px-1000px');}}) ();

Empunhaduras
fonte
0

Enquanto Trylks está no caminho certo, adicionarei meu próprio método. . .

Este script pode ser executado simplesmente colando-o no console. Pressione F12 para abrir as ferramentas de desenvolvimento e clique no segundo botão na parte inferior (a> com três linhas) para abrir o console.

As variáveis ​​no topo podem ser alteradas para se adequarem à situação. . .

//  User Variables  //

var IMG = true;         //True if the images are on the page as <img> elements, set to false if there are only anchor <a> links.
var TYPE = 'jpg';       //Only important when img is false, Set to the file extension of the files.

var NEWFOLDER = 'http://example.com/gallery/1000px-1000px'  //This is the folder you expect to find the new images in. It should *not* end in a '/'.

//  Begin Script    //

function getURLs() {    //Returns an array of URLs from either <img> or <a> elements for the images.
    var URLs = [];
    if (IMG) {  //If we are dealing with <img> elements. . .
        var imgs = document.getElementsByTagName('img');    //Grab the <img>'s
        for (var i in imgs) {   //Loop through them
            URLs.push(imgs[i].src); //Put the src into an array
        }
    }
    else {  //Or else we are using <a> elements.
        var reg = new RegExp('.*\.' + TYPE + '$');  //Create a regular expression to make sure this is an image (of the type defined)
        var imgs = document.getElementsByTagName('a');  //Grab the <a>'s

        for (var i in imgs) {   //Loop through them
            if (reg.test(imgs[i].href)) {   //Test that this is an image 
                URLs.push(imgs[i].href);    //Put the href in the array
            }
        }
    }

    return URLs;
}

function parseNames(urls) { //Returns an array of names
    var reg = new RegExp('^http.*\/(.*\..*)$');
    var names = [];

    for (var i in urls) {   //Loop through the urls
        if (urls[i]) {  //In case of undefined members
            names.push(reg.exec(urls[i])[1]);
        }
    }

    return names;
}

function makeLinks(files) { //Replaces the page with a list of links
    var body = document.getElementsByTagName('body')[0];    //Get the <body>
    body.innerHTML = '';    //Delete all the page content

    for (var i in files) {  //Loop through the files
        var path = NEWFOLDER + '/' + files[i];

        var link = document.createElement('a'); //Create <a>'s
        link.href = path;
        link.innerHTML = path;

        body.appendChild(link); //Append the links to the document
        body.appendChild(document.createElement('br'));
    }
}


makeLinks(parseNames(getURLs()));

Isso substituirá sua página por uma lista de URLs para os arquivos desejados. Basta colar esses links no seu gerenciador de downloads.

Infelizmente, não há como fazer com que o JS inicie os downloads sem a ajuda do lado do servidor, então o melhor que isso pode fazer é fornecer uma lista.

zeel
fonte