↓
 ↑
Регистрация
Имя/email

Пароль

 
Войти при помощи
tany2222
4 июля 2018
Aa Aa
#вопрос
На Фанфиксе есть функция, чтобы скачать, например, какую-нибудь свою коллекцию целиком??? Листать 2тыс фиков просто нереально...
4 июля 2018
16 комментариев
Нет...
Разве скриптик написать )
Вот что удалось придумать:
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
Styx
Sithoid
Почитала переписку и... поняла, что мой моск под это не заточен...
tany2222
Когда пришел Styx, я про себя понял то же самое )
Но, кажется, запрос он вам решил xD
Sithoid, подозреваю, что ТС хотел не этого :)

tany2222, если вы имели в виду функцию самого сайта — нет, такой возможности нет. Но, используя небольшой скриптик, можно получить список ссылок на скачивание всех фиков в коллекции, а затем и скачать их. Надо лишь не забывать про 1с задержку между запросами, чтобы не попадать в ограничения самого сервера.
tany2222, если коллекция открытая (публичная), я могу вам скачать все фики оттуда. Если закрытая, но вы всё равно хотите скачать — напиши мне в личку, я вам с этим помогу :)
Styx
Ок, вечером наберу)
ПОИСК
ФАНФИКОВ











Закрыть
Закрыть
Закрыть