Случается иногда такая необходимость, выдернуть все нужные ссылки со страницы в браузере, а ссылок тысяча и вручную это делать, мягко говоря, нерационально. Задачу легко автоматизировать, используя возможности JavaScript и метода map. Как это работает:

  1. Жмем F12, чтобы увидеть консоль разработчика в современном браузере (Chrome / Firefox). Или запускаем эту самую консоль другим методом, который нравится лично вам.

  2. Затем пишем в консоли следующую команду:

<Array.prototype.slice.call(document.querySelectorAll('a')).map(function (el) { return el.href })

Если на странице подключен JQuery, то команда упрощается до:

$.map($('a'), function (el) { return el.href })

Жирным выделено место, куда мы вставляем необходимый селектор. Например, в моем случае с выдиранием большого количества ссылок на ютубе, селектор был таким: .yt-lockup-title > a (выбор всех непосредственных дочерних элементов h3 с классом yt-lockup-title). Вот что получается в итоге:

Получение всех ссылок со страницы

Для более удобного вывода можно дампить все прямо в консоль, а не возвращать элементы массивом:

Array.prototype.slice.call(document.querySelectorAll('.yt-lockup-title > a')).map(function (el) { console.log(el.href) } )

Потом удобно закинуть этот список в текстовый файл и скормить какому-нибудь консольному youtube-dl командой:

youtube-dl --batch-file='links.txt'

Можно с таким же успехом выдирать, например, все адреса картинок или каких-то файлов. Естественно, возможности составления выборки ограничиваются только возможностями языка JavaScript.

Понравилось? Поделись!

Пока заметку никто не прокомментировал...


Оставить новый комментарий

Войдите, чтобы оставить свой комментарий:

Войти через...


Это даст читателю возможность голоса, комментария, создания закладки, и даже написания поста, не говоря о множестве других мелких ништяков.

Популярное


Соациализируемся


Также найти меня можно в других злачных местах:

Все еще использую электронную почту:
andreybaksalyar@ya.ru