Мы переносим веб-серверы, и было бы неплохо иметь автоматизированный способ проверить некоторые основные структуры сайта, чтобы увидеть, являются ли отображаемые страницы одинаковыми на новом сервере, как старый сервер. Я просто задавался вопросом, знает ли кто-нибудь о чем-либо, чтобы помочь в этой задаче?Сравните два веб-сайта и посмотрите, равны ли они?
ответ
Получить форматированный вывод обоих сайтов (здесь мы используем w3m, но рысь также может работать):
w3m -dump http://google.com 2>/dev/null > /tmp/1.html
w3m -dump http://google.de 2>/dev/null > /tmp/2.html
Затем использовать wdiff, он может дать вам процент, как похожи эти два текста.
wdiff -nis /tmp/1.html /tmp/2.html
Это может быть также легче увидеть различия, используя colordiff.
wdiff -nis /tmp/1.html /tmp/2.html | colordiff
Отрывок выхода:
Web Images Vidéos Maps [-Actualités-] Livres {+Traduction+} Gmail plus »
[-iGoogle |-]
Paramètres | Connexion
Google [hp1] [hp2]
[hp3] [-Français-] {+Deutschland+}
[ ] Recherche
avancéeOutils
[Recherche Google][J'ai de la chance] linguistiques
/tmp/1.html: 43 words 39 90% common 3 6% deleted 1 2% changed
/tmp/2.html: 49 words 39 79% common 9 18% inserted 1 2% changed
(он на самом деле положил google.com на французский ...смешно)
Значение Общие значения%: насколько похожи оба текста. Кроме того, вы можете легко увидеть различия по слову (а не по линии, которая может быть беспорядком).
Скопируйте файлы на тот же сервер в /tmp/directory1
и /tmp/directory2
и выполните следующую команду:
diff -r /tmp/directory1 /tmp/directory2
Для всех намерений и целей, вы можете поместить их в нужном месте с выбранным именованием.
Edit 1
Вы могли бы потенциально использовать lynx -dump
или ее wget
и запустить диф на результаты.
Это было бы сравнить сами файлы будут его нет? Я хочу сравнить отображаемые страницы после того, как они запущены через apache (и PHP). Я думаю, что я ищу веб-паука или сканера. –
Уловка, как проверить страницы «рендеринга». Если на страницах нет динамического контента, самый простой способ сделать это - генерировать хэши для файлов с помощью команд md5 или sha1 и проверять их на новом сервере.
Если страницы имеют динамический контент, вам придется загрузить сайт с помощью инструмента, как Wget
Wget --mirror http://thewebsite/thepages
, а затем использовать дифф как предложено Warner или сделать хэш вещь снова. Я думаю, что diff может быть лучшим способом, так как даже изменение 1 символа испортит хэш.
Я редактировал, прежде чем увидел ваш ответ. Вы даете хорошие рекомендации. – Warner
Если вы не сделали рендеринга каждой страницы, взяв снимки экрана и сравнив эти скриншоты, я не думаю, что можно сравнивать отображаемые страницы.
Однако, конечно, можно сравнить загруженный веб-сайт после рекурсивной загрузки с помощью wget.
wget [option]... [URL]...
-m
--mirror
Turn on options suitable for mirroring. This option turns on recursion and time-stamping, sets infinite recursion depth and keeps FTP
directory listings. It is currently equivalent to -r -N -l inf --no-remove-listing.
Следующим шагом было бы сделать рекурсивный разброс, рекомендованный Warner.
Я создал следующий PHP-код, который делает то, что предлагает Weboide здесь. Спасибо, Weboide!
паста здесь:
- 1. Сравните два класса и посмотрите, равны ли они с учетом примитива и его класса-оболочки
- 2. Сравните две строки, очевидно, они равны
- 3. Сравните/Посмотрите два NSArray и получите правильное значение
- 4. Сравните две строки и, если они равны в обратном направлении
- 5. Соедините две таблицы и сравните два столбца, чтобы узнать, равны ли они
- 6. IOS: Сравните два меньше или равны NSDates
- 7. Сравните две даты в vb.net, равны ли они или нет
- 8. Python: сравните 2 строки и посмотрите, содержат ли они одни и те же буквы
- 9. Java, два целых числа, они равны, но
- 10. Сравните два объекта Doctrine_Record
- 11. Проверьте, равны ли два разных ArrayLists равны
- 12. Определите, равны ли два массива
- 13. Сравните, если две строки равны
- 14. PHP Сравните, равны ли строки (почти)
- 15. Сравните, если два объекта dataframe в R равны?
- 16. 1 домен 2 вебсайта
- 17. ли они равны с точки зрения эффективности
- 18. Как проверить, равны ли два булевых значения?
- 19. Сравнивая две ячейки и если они равны, сравните две другие ячейки и выделите результаты, если не равны
- 20. Сравните строки, чтобы узнать, идентичны ли они.
- 21. Как решить, равны ли два LARGE unordered_map?
- 22. Проверьте, равны ли два 2D-массива
- 23. Как узнать, равны ли два источника изображения?
- 24. Попробуйте проверить два объекта, если они равны с аргументом if.
- 25. PHPUnit - утверждают, что две строки равны, и они равны
- 26. Сравнивая два объекта, чтобы убедиться, что они равны
- 27. Сравните два столбца в pandas, чтобы они соответствовали
- 28. Как сравнить два DynamicJsonObjects, чтобы проверить, что они равны?
- 29. Как проверить, равны ли два кадра данных
- 30. Сравните два указателя
, если вы хотите только процент, вы можете сделать следующее: wdiff -nis /tmp/1.html /tmp/2.html | хвост -2 | awk '{print $ 5}' ' – droope