Как получить URL всех изображений на странице, отредактировать их и скачать

вот задача:

страница имеет 300 изображений JPEG с URL-адресами, такими как
http://example.com/gallery/500px-500px/7496.jpg

Я хочу изменить эти URL-адреса
http://example.com/gallery/1000px-1000px/7496.jpg

и скачать в лучшем качестве.

как я достигаю этой задачи сейчас: я открываю веб-страницу и загружаю все изображения в папку с любым менеджером загрузки. Затем я создаю список имен образа с помощью cd c:download + dir *.* > list.txt команды и добавить url http://example.com/gallery/1000px-1000px/ носили имена файлов. После этого я загружаю новые URL, используя любой файл менеджер.

как сделать этот процесс загрузки проще и быстрее? Спасибо!

27
задан Moses
09.11.2022 21:09 Количество просмотров материала 3275
Распечатать страницу

3 ответа

Я написал расширение Google Chrome для загрузки файлов из списка, который вы вставляете, или из URL-адресов открытых вкладок в окне.

Это называется TabSave и открытым исходным кодом (см. В интернет-магазине описание).

ответ ЗИЛа кажется совершенно прекрасным. Там будет много других учебников о том, как получить ссылки с веб-страницы, если вы дадите ему быстрый поиск в интернете. Настройки безопасности Chrome extension делают общение неудобным со страницей, но как только у вас есть этот список URL-адресов, это расширение может обрабатывать загрузки.

1
отвечен Louis Maddox 2022-11-11 04:57

проще всего сделать скрипт на каком-нибудь удобном для вас языке.

возможность иметь букмарклет, который делает это, написанный на JavaScript. Он использует DOM переписать URL-адреса, а затем загрузить полную веб-страницу с URL-адреса переписаны.

вы можете попробовать что-то вроде этого:

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');
  }
})();

другая возможность заключается в использовании языка сервера (например, Python) на вашем компьютере, который получит веб-страницу, а затем изображения, но это требует установки интерпретатора или чего-то еще.

вы должны определить ссылку на панель закладок: [большие картинки!][1]

[1]: в JavaScript:(функция(){ВАР я, ГИМ; ГИМ = $$('компания IMG'); для (Я=0; я < ГИМ.length; i++){ imgs[i].src = imgs[i].src.заменить('на 500px-на 500px', '1000пк-1000пк');}})();

0
отвечен Trylks 2022-11-11 07:14

пока Trylks на правильном пути, я добавлю свой собственный метод. . .

этот скрипт можно запустить, просто вставив его в консоль. Нажмите F12, чтобы открыть инструменты разработчика, и нажмите вторую кнопку внизу (a > с тремя строками), чтобы открыть консоль.

переменные наверху могут быть изменены в соответствии с ситуацией. . .

//  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()));

Это заменит вашу страницу со списком ссылок на файлы, которые вы хотите. Просто вставьте эти ссылки в загрузку менеджер.

к сожалению, нет никакого способа, чтобы сделать JS начать загрузку без помощи на стороне сервера, так что лучшее, что это может сделать, это дать вам список.

0
отвечен zeel 2022-11-11 09:31

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх