2014-12-18 2 views
0

Я пишу сценарий веб-мониторинга, используя python, который будет просматривать архивированную версию страницы, сравнить ее с текущей, онлайн-версией и уведомить меня, если есть какие-то изменения. У меня есть основы этой работы, но я столкнулся с проблемой с сайтами, которые имеют динамический атрибут в веб-форме. Страница вообще не изменилась, но скрытый атрибут в форме имеет, который вызывает уведомление.Сравнение двух файлов HTML и возврат тегов HTML, которые отличаются друг от друга

Использование python's difflib в двух файлах HTML с diff = difflib.unified_diff(content1, content2), я могу получить усеченный вывод ниже.

-<input type='hidden' value='contact-us' name='ufo-form-pagename' id='ufo-form-pagename'/><input type='hidden' value='927eea55b8e87e961314033fce84de4a1418504077' name='ufo-sign' id='ufo-sign'/> 

+<input type='hidden' value='contact-us' name='ufo-form-pagename' id='ufo-form-pagename'/><input type='hidden' value='1ccb910cbb9dc0d6f6dd5ed99212df741418800872' name='ufo-sign' id='ufo-sign'/> 

Я хотел бы «читать» через этот выход, и возвращает атрибут HTML, которые не имеют то же значение, в данном случае value='927eea55b8e87e961314033fce84de4a1418504077' и value='1ccb910cbb9dc0d6f6dd5ed99212df741418800872'

Как бы я идти об этом?

ответ

0

Я пишу сценарий веб-мониторинга, используя python, который будет просматривать архивированную версию страницы, сравнить ее с текущей, онлайн-версией и уведомить меня, если будут какие-либо изменения.

Разве вы не ответили на свой вопрос? Если есть diff, файл изменился. :)

Похоже, что вы хотите проигнорировать определенные классы изменений. Если вы не заинтересованы в правильном анализе HTML, наивный хак может состоять в том, чтобы преобразовать все пробелы в новые строки, а затем запустить diff. В этом случае единственная разница, которую вы могли бы увидеть, была бы value='927eea55...', которую вы могли бы забрать и проигнорировать регулярное выражение.

Если вы хотите, чтобы правильно разобрать HTML и сделать что-то более умный разностей, LMGTFY:

+0

Я сделал это, но мне нужно, чтобы увидеть разницу, предпочтительно только атрибут оскорбления, и определить, является ли оно значительным или нет. – Butters

 Смежные вопросы

  • Нет связанных вопросов^_^