LINUX.ORG.RU
решено ФорумTalks

Существует ли способ адекватно сохранять веб-страницы? (чтобы не было мусора в сохранении)

 ,


0

3

Очень удивляет что не смотря на многолетнюю зрелость веба не существует возможности нормально сохранять веб-страницы локально. Это касается как Файрфокса и браузеров на его основе, так и Хромообразных.

А именно, если сохранять веб-страницу целиком то:

1. Сохраняется куча НЕНУЖНОГО мусора в виде JS скрипитов, которые на 99.9% несут в себе функциональность рекламы и локально не нужны.

2. Картинки сохраняются, но ссылки под этими картинками ведут не на локальные сохраненные полноразмерные картинки а на удаленный адрес первоисточника.

Есть способ сохранять в mhtml (когда всё сохраняется в один файл), но по ряду причин мне этот способ совершенно не нравится: во первых скорее сего он просто прячет в себя все то же как в режиме классического сохранения, все те же ненужные скрипты, во вторых он имеет непонятный формат, и все картинки заключены в нём, а я хочу чтобы текст сохраненной страницы был в виде plain текста, а картинки в виде отдельных картинок, чтобы была возможность например отдельно каталогизировать все картинки в компе и потом через отдельный каталогизатор найти локально сохраненную страничку по фотке, ровно так же чтобы была отдельная возможность текст из сохраненной веб странички легко читать и править, без спец-софта, в обычном текстовом редакторе.

ВОПРОСы:

1. Существует ли софт - которому можно скормить уже сохраненную веб-страницу, который пропарсит её и удалить из неё все скрипиты, все внешние css и прочее (но встроет css стили внутрь страницы) - ну т.е. чтобы на выходе был один html файл, с сохранением стилистики, но без скриптов, и набор картинок и прочих медиаресурсов с него?

2. Возможно существуют плагины которые исправляют проблемы современных браузеров при сохранении, которые сохраняют исключительно статический контент страницы, то что видит пользователь сейчас, убирая все скрипты, чтобы после сохранения был исключительно один html файл, и папочка с медиаресурсами, но без скриптов, css и прочего.

★★★★★

Последнее исправление: bonta (всего исправлений: 1)

Ручное редактирование. Только.

sword
()

SingleFile (расширение для Firefox и Chrome) — сохраняет страницу в один файл, при этом конвертирует картинки в base64 и встраивает стили inline. Преимущество: итоговый файл — один .html, читаемый и редактируемый без внешних ресурсов. Можно сначала с помощью uBlock Origin (селектором — «Блокировать элемент») быстро удалить с веб-страницы все ненужные элементы и скрипты, а уже затем сохранять страницу с помощью этого расширения. (В SingleFile есть опция — сохраненять только выделенное на странице, кстати.)

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

Или можно к SingleFile добавить скрипт на каком-нибудь Пистоне, который будет выдирать все base64-картинки из html-файла и конвертировать в jpg/png.

Ещё можешь рассмотреть программу для ведения заметок или базы знаний MyTetra. Её киллер-фича — возможность копировать текст + картинки (с сохранением форматирования/оформления текста и расположением картинок) с любой веб-страницы из браузера.

posixbit ★★★
()
Последнее исправление: posixbit (всего исправлений: 6)

Ну скрипты ты можешь удалить просто как rm *.js. Можно даже в incrontab прописать, чтоб сразу удалялись. В принципе этого достаточно, но для пущей красоты можно потом тупо поудалять строки в html-файле, которыми они подключаются. Но и без этого работать будет — ну нет скрипта и нет, веб же так работает, что пофиг браузеру на такое.

CSS вписать в html-файл не очень понятно зачем, но по идее это не должно быть сложно. Надо всего лишь заменить строку со ссылкой на css (найти её регэкспом) по <link и имени css-файла, например, на содержимое этого самого css-файл, обрамлённого в <style>. Не знаю, есть ли готовое решение, но наколхозить в принципе несложно.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)

Есть аддон SingleFile для фаерфокса. Сохраняет всю страницу (вместе со всеми картинками, скриптами и стилями) в единственный HTML файл. Никакой «папочки с медиаресурсами» вообще не требуется. В принципе, меня устраивает, ничего лучше не попадалось.

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

Если включен блокировщик рекламы, то все мусорные скрипты и так отсутствуют, так что сохраняется без шлака.

Ещё можно сохранять «reader view» (Ctrl+Alt+R) например, если он адекватно сделан.

Stanson ★★★★★
()

Всем спасибо!

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

Жаль что я незаморачивался ранее и теперь у меня огромная библиотека сохранёнки, теперь придётся каждый элемент просмотреть и пересохранить. Уйдет вечность :) Зато потом сколько мусора уйдет с дисков (для примера сохранил кое-какую стр, средствами браузера - 61 файл на 8Мб, и средствами СинглФайла - 1 файл на 4 Мб)

bonta ★★★★★
() автор топика
Последнее исправление: bonta (всего исправлений: 2)
Ответ на: комментарий от bonta

a в отдельную папочку медиаресурсы клал

Можно wget использовать.

удалить из неё все скрипиты, все внешние css и прочее (но встроет css стили внутрь страницы)

Это сходу не могу сказать как сделать. По умолчанию он сохраняет без css стиля, для css есть флаг --page-requisites, но он также и js сохраняет. Можно попробовать добавить флаг --ignore-tags=script.

ссылки под этими картинками ведут не на локальные сохраненные полноразмерные картинки а на удаленный адрес первоисточника.

--convert-links

Jullyfish
()

Еще Print to PDF можно применить. Но с разной полезности результатом для разных сайтов.

Ecl
()
Ответ на: комментарий от cobold

А если сайт на реакте?

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

Single File тоже иногда сохраняет правильно, но это зависит от сайта, как повезёт.

olegd ★★★
()
Ответ на: комментарий от cobold

Ну тогда, очевидно, ничего подобного не сработает. Но думаю, ТС прекрасно осознаёт это, и нужны только «нормальные» сайты с опциональным JS, отображающие страницы и без него.

Ну а если надо сохранить что-то с сайта на реакте, я бы скорее тупо копипастил. Ну или нажал бы F12 и там из «инспектора» скопипастил бы уже отрендеренный html.

CrX ★★★★★
()

Картинки сохраняются, но ссылки под этими картинками ведут не на локальные сохраненные полноразмерные картинки а на удаленный адрес первоисточника.

Логично - сохраняются только уже загруженные картинки. И SingleFile как и аналогичные инструменты работает также.

во вторых он имеет непонятный формат,

не то что бы непонятный. Есть RFC
MIME Encapsulation of Aggregate Documents, such as HTML (MHTML)
https://datatracker.ietf.org/doc/html/rfc2557

хочу чтобы текст сохраненной страницы был в виде plain текста,

В случае MHTML: если там только ASCII, то это в принципе возможно. Иначе - требуется кодирование того или иного рода.

Any documents including HTML documents that contain octet values
      outside the 7-bit range need a content-transfer-encoding applied
      before transmission over certain transport protocols

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

строго говоря встроенный в веб-браузер «Save as Web-page complete» ближе к этому требованию, чем SingleFile, т.к. последний встраивает картинки непосредственно в документ (также как MHTML)

MirandaUser2
()
Последнее исправление: MirandaUser2 (всего исправлений: 1)
Ответ на: комментарий от cobold

Тогда его не нужно сохранять, потому что ничего ценного там быть не может, очевидно :)

buddhist ★★★★★
()
Ответ на: комментарий от bonta

Немножко жаль что нельзя так как я хочу из-коробки (чтобы не в base64 a в отдельную папочку медиаресурсы клал)

Если это для экономии места, то можно сжать xz

goingUp ★★★★★
()

Первый способ: из html в маркдаун и затем из маркдаун обратно в хтмл, с помощью пандок

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

ivan007007
()
Последнее исправление: ivan007007 (всего исправлений: 1)
Ответ на: комментарий от bonta

a в отдельную папочку медиаресурсы клал

Сохранить как -> веб-страница целиком. Все браузеры из коробки умеют.

Tigger ★★★★★
()

Рекомендую ещё расширение «Save Page WE» - оно умеет сохранять текущий DOM, а не то что скачалось с сайта. работает довольно медленно, но бывает очень полезно

GPFault ★★★
()

Сохраняю в pdf. Если на странице есть режим чтения, то сначала вхожу в него. Удобная штука, отрубает лишние фичи, например, кажется, дурацкие скрипты типа защиты от копирования (но это не точно, давно не делал), но встречается не всегда. Wget, по идее, должен дать больше приятных вариантов, но обычно нет повода специально морочиться, т.к. достаточно pdf

bender ★★★★★
()
Ответ на: комментарий от CrX

Нет, не осознаю, к сожалению.

Я представлял сайты так что в итоге между тем что видит человек во вкладке браузера и конкретными технологиями обязательно всё представлено в виде html, даже динамический контент (который в момент сохранения четко по правилам DOM может встроится в нужные места страницы), поэтому в моём маня-мирке не понятно почему например на Реакте или любой другой технологии с сохранением должны быть проблемы.

А вообще я давно считаю что веб давно пошел не туда и опять таки в моём маня-мирке я хотел видеть бы от веба то что было в конце 90 и начале нулевых - предел интерактивности это форумы и первая версия Вконтакта, простенький Ютуб... Никакие веб-приложения, и упаси рандом - wasm (недавно ради интереса запустил doom3 в браузере и ужаснулся что это возможно)) - я бы не хотел видеть.

Т.е. предельно простой веб мир, предельно простые мессенджеры без ботов, но зато большее количество разных десктопных программ, и еще что бы было больше 3х крутых ОС и больше 2х крутых актуальных архитектур - тогда и пользователю жизнь интереснее и программистам работы много. А скоро будет один веб, одна ОС, и одна аппаратная архитектура :(

bonta ★★★★★
() автор топика
Ответ на: комментарий от Camel

Пробовал, но не понравилось то что (во всяком случае на момент когда я пробовал было так) страницы как-то не так выглядели и внутри себя имели так сказать застывший дизайн (ну например отступы) html получается более живым если смотреть его на разных мониторах. А например если я сохранял с компа в pdf то в телефоне такое смотреть было невозможно и наоборот.

Ну и еще htmlка сохранённая как-то пошустрее в плане и открытия и навигации в ней, по крайней мере на мой машине это весьма ощутимо - октрывать и листать html или pdf.

bonta ★★★★★
() автор топика
Последнее исправление: bonta (всего исправлений: 1)
Ответ на: комментарий от bonta

А вообще я давно считаю что веб давно пошел не туда

Ты очень прав

в моём маня-мирке я хотел видеть бы от веба то что было в конце 90 и начале нулевых - предел интерактивности

Он пошёл не туда несколько раньше. По крайней мере НАЧАЛ этот путь. Скатывание в грёбаный ад началось примерно в тот момент, когда разработчики браузеров решили «а давайте мы будем считать, что некорректный HTML — это норм, пытаться угадать, что имел в виду автор, и рендерить всё равно, не давая об этом никакого понятия юзеру». Примерно где-то в этот момент и началось. Дальше только по накатанной вниз и в бездну.

CrX ★★★★★
()

я много лет назад пришёл в простое Print -> Save as PDF -> Yandex Disk -> Справочники. По итогу отличное решение получилось.

stalkerbss
()

Нету такого. Слишком много хочешь. Но у нас же типа как ИИ есть так что можешь надиктовать ему задание.

wenxuan
()
Ответ на: комментарий от Lordwind

Режим чтения - печать в pdf - профит.

Пользуюсь, в основном, Firefox. Несколько раз пробовал использовать ‘режим чтения’ (давненько уже). При этом неоднократно натыкался на пропуск случайных кусков текста на разных web-страницах (типа абзацев, элементов списков). В результате совсем перестал пользоваться этим режимом.

Не знаю, было ли это связано с какими-либо add-on’ами или настройками в about:config, но результат был такой.

Zaruba
()
  1. Сохраняется куча НЕНУЖНОГО мусора в виде JS скрипитов, которые на 99.9% несут в себе функциональность рекламы и локально не нужны.

Так кнопки и другой интерактив весь сломается на странице. Вам нужен снимок DOM, что ли, как HTML-скриншот?

Расширение Save Page WE так умеет. Есть для FF и Chrome.

ValdikSS ★★★★★
()
Последнее исправление: ValdikSS (всего исправлений: 1)
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)