nirvimel: я понял идею, спасибо, я говорю как сейчас сделан вариант который не устраивает. Python + lxml на вход принимают исходник страницы, на выход дают массив строк.
Пример со стэковерфлоу:
from lxml import html
from lxml.html.clean import clean_html
tree = html.parse('www.example.com')
tree = clean_html(tree)
>А вот и совсем не понятно, потому что текстового сравнения HTML там нет.
Я имел ввиду текстовое построчное сравнение текста, очищенного от html-тегов, т.е. по сути только текст который видит пользователь. Увы, решение очень далеко от идеала, поскольку так или и наче в дифф просачивается лишняя информация, а необходимая может не попасть из-за некорректной фильтрации тегов. Даже на этом этапе мы столкнулись с огромным количеством "граничных случаев", которые требуют индивидуального подхода с потерей времени и костылестроением. Постороение визуального диффа прямо внутри дизайна страницы мне видится наиболее верным решением задачи, но, увы, оно пока выглядит еще более запутанным и трудозатратным.
Получается, для корректного сохранения страницы придется либо выкачивать все скрипты/изображения и css, либо преобразовывать относительные ссылки в абсолютные чтобы при открытии файла локально они брались с сервера, а изменения оборачивать в теги с измененным background-цветом?
MrNine: >как можно реализовать,передачу ссылок на сайт
любой программой типа fiddler или дополнениями к браузеру посмотреть какие запросы уходят на сервер, какие ответы он присылает. Сделать то же самое на python. Если вопрос "Чем", то ответ "requests, например".