Сохранение страниц сайтов («навечно») в p2p

Разгребал тут на форуме топик пятилетней давности и в очередной раз грустил о том, что через пять лет порядка 25% ссылок становятся недоступными. И снова возвращаюсь к идее сохранять копии таких страниц локально и в p2p. Но начинать надо с выкачивания страницы. Понятно, что почти идеальное решение (при чём без альтернативы, увы :-/ ) — Scrabook под Firefox. И хранится удобно, и вычистить страницу от мусора можно. Но это — ручная работа. А в общем случае процесс должен быть автоматическим для форума.

Конечно же, есть wget!

Задача, вроде бы, примитивная — скачать страницу и все картинки (и прочие файлы), на которые страница ссылается. Но не выкачивая страницы, на которые она ссылается! Потому что их бывает очень, очень много...

И вот тут — облом. Если тупо скачивать с --page-requisites, то страница скачивается в отличном виде, но, понятно, не качаются, например, большие картинки, превьюшки которых стоят на странице.

Если добавляем -r -l1, то качаем всё, на что страница ссылается, но это ещё и десятки, иногда сотни .html первого уровня и... внезапно! тоже с --page-requisites — т.е. десятки и сотни картинок со своими ресурсами!

Если качать без --page-requisites, то наша основная страница качается не целиком, утягиваются не все ресурсы.

Если добавлять --accept '*.jpg' или --reject '*.html', то, опять внезапно, не качается и сама страница, которую мы хотим скачать, так как она — .html

...

httrack тоже задачу не решает :-/

Проблема в картинках, на которые ссылается страница. Т.е.:

<a href="/full-image"><img src="image" /></a>

Если ограничиваться глубиной выкачивания -r1, то превьюшка качается, полная картинка — нет. Если ставить -r2, то выкачиваются, порой, тысячи файлов — вплоть до всего сайта.

Если ставить фильтры по расширениям (-* +*.gif +*.jpg +*.png +*.css +*.js), то с -r2 результат сносный. Но у картинок часто вообще нет расширения и этот метод не работает.

Если ставить фильтры по MIME (-mime:*/* +mime:image/* +mime:text/*), то с -r2 опять качается [почти] весь сайт, только что кроме картинок и html ничего не останется, но прочего итак мало. Если в mime убирать text/html, то, болезнь wget, не качается и та страница, которую сказали выкачать.

Блин. Простейшая задача в рамках того, что уже умеют wget и httrack, но ни тот, ни другой, решить её не могут :D

...

В общем, пока совсем забил на ссылающиеся картинки. Лучше иметь страницу с превьюшками и без полных картинок, чем не иметь ничего :)

Примеры сохранённых страниц:

http://gateway.ipfs.io/ipfs/QmVQzXn8pNGDMMdFneffktMKfrUFw7txFv6mBTo3SY71NM

http://gateway.ipfs.io/ipfs/Qmb1Xxv8FoRhMYyqHWpc2hqiedWcS2sTy9eiwuqM5wFXBs

И скрипт по добавлению страниц в IPFS начерно:

https://github.com/Balancer/infonesy/blob/master/tools/pget

Тэги темы:

Комментарии

  • Это всё я писал неделю назад. Решил и сюда закросспостить :)

    Сегодня в голову пришла мысль, что сохранённые страницы можно ещё и в ZeroNet хранить как статические сайты.

    Плюсы — очень легко доступны и контент «на виду». Хорошо видны популярные ресурсы. Легко их находить и индексировать. Можно интегрировать с интерактивными функциями ZeroNet.

    Минусы — придётся либо засорять локальный репо огромным количеством одиночных зайтов-страничек, либо собирать в какие-то обновляемые коллекции.

    Так что, скорее, всё же, для хранения буду использовать IPFS. Но на «входную» страничку ресурса можно повесить ссылку на, например, комменты/обсуждение таких страниц в ZeroNet. Впрочем, можно для простоты добавлять и банальный Disqus :)

Войдите или Зарегистрируйтесь чтобы комментировать.