![]() #вопрос
На Фанфиксе есть функция, чтобы скачать, например, какую-нибудь свою коллекцию целиком??? Листать 2тыс фиков просто нереально... 4 июля 2018
|
![]() |
|
Вот что удалось придумать:
function collectLinks() { var ficheads = document.getElementsByClassName("FicTable_Title"); var pattern = /[0-9]/g; var ficindex = []; var linkcollection = []; var i; for (i = 0; i < ficheads.length; i++) { var ficlinks = ficheads[i].getElementsByTagName("a"); ficindex[i] = ficlinks[0].href.match(pattern).join(""); linkcollection[i] = "https://fanfics.me/download.php?fic=" +ficindex[i]+"&format=fb2"; } } Вопрос только в вводе/выводе. Я не знаю, как напустить этот скриптик на конкретную страницу коллекции и не знаю, как потом заставить браузер скачать все ссылки по списку. Но серединка - сбор ссылок - готова. Можно отталкиваться от linkcollenction.length и делать цикл сбора списка по linkcollection[k] |
![]() |
|
UPD:
Не-а, невозможно. Я заставил таки скрипт качать по одной кнопке сразу несколько фиков, но один скачался, а другой открыл страничку с надписью "Не Так Часто!". Рефери всё предусмотрел )) |
![]() |
|
Sithoid, вот попроще способ для сбора ссылок на загрузку, включая правильные ссылки на загрузку ФвВ: https://pastebin.com/SEbrSbZf
|
![]() |
|
Styx
Спасибо, про JQuery я что-то не подумал, если это он (у меня вообще уровень сильно любительский). Там вроде и get() есть... Можно попробовать допилить до полноценного запроса. Но всё равно всё упирается в тайм-аут на скачивание. Рефери явно хотел сервер от таких вот вумных разгрузить ) А если по одному тянуть - весь смысл теряется |
![]() |
|
Sithoid, это не jQuery, это чистый ванильный джаваскрипт :)
|
![]() |
|
Styx
окей, многого я не знаю об этом мире ) Пойду разбирать, что эта штука делает, авось пригодится ) |
![]() |
|
Sithoid, да то же самое, только без лишних телодвижений :) Этот код можно скопировать и запустить в браузере на страничке коллекции, в переменной links будет массив ссылок на скачивание.
|
![]() |
|
Styx
оппа, а нынче браузеры умеют свои скрипты на копиях чужих сайтов гонять? И чего я тогда с get голову ломал... Тогда, видимо, к вашему остается приписать вот эту костылину: function downloadDataUrlFromJavascript(filename, dataUrl) { // Construct the 'a' element var link = document.createElement("a"); link.download = filename; link.target = "_blank"; // Construct the URI link.href = dataUrl; document.body.appendChild(link); link.click(); // Cleanup the DOM document.body.removeChild(link); delete link; } for (i = 0; i < links.length; i++) {downloadDataUrlFromJavascript("",links[i]);} Или опять переусложняю? ) |
![]() |
|
Sithoid, переусложняете :) Есть список ссылок на загрузку — сохраняем его в текстовый файлик: links.join("\\n") и copy&paste.
Затем: wget -i <links_file> -w 1 --content-disposition Результат: https://www.pichome.ru/images/2018/07/04/ZHFKEMrO0.png 1 |
![]() |
|
![]() |
|
![]() |
|
Sithoid, подозреваю, что ТС хотел не этого :)
tany2222, если вы имели в виду функцию самого сайта — нет, такой возможности нет. Но, используя небольшой скриптик, можно получить список ссылок на скачивание всех фиков в коллекции, а затем и скачать их. Надо лишь не забывать про 1с задержку между запросами, чтобы не попадать в ограничения самого сервера. |
![]() |
|
tany2222, если коллекция открытая (публичная), я могу вам скачать все фики оттуда. Если закрытая, но вы всё равно хотите скачать — напиши мне в личку, я вам с этим помогу :)
|
![]() |
|
Styx
Ок, вечером наберу) |