Всем привет! Давно я не писал статей и не палил темы. Как многие читатели помнят, я написал статью про парсинг движков по картинкам, который отлично подходит для всех пользователей. В этой статье я хочу рассказать о методе парсинга движков сайтов с использованием внутренних признаков движков, который больше подойдет для людей «в теме». А люди, которые еще не «в теме», более глубоко вникнут в схемы автоматизации поиска движков, проверки движков на живучесть и прочее.
В этой статье я покажу, как выполнять поиск одних из самых распространенных движков сайтов, а именно DLE, Joomla, Vbulletin, PHPBB, IPB и приложу скрипт для поиска данных движков по списку доменов (по аналогии с предыдущим скриптом, только в этот раз он будет проверять эти 5 движков). А те люди, которые знают программирование, смогут запросто переписать его под свои нужды. Сейчас я покажу примеры признаков поиска указанных выше движков и вы увидите разнообразие вариантов для определения CMS на которой сделан тот или иной сайт.
DLE. Как всем, наверное, известно, практически у любого движка есть свои особенности, свои варнинги и прочие признаки, которые зачастую скрыты даже для Гугла, и спарсить выдачу по этим признакам будет проблематично. В качестве примера данного признака можно рассмотреть движок DLE. В DatalifeEngine если зайти на страницу http://example.com/engine/engine.php с браузера, то вы увидите текст Hacking attempt! Эта надпись и данный путь с вероятностью 95% скажут нам о том, что данный сайт работает на движке DLE.
Joomla. Движок Joomla можно с большой долей вероятности определить по метатегам и файлу robots.txt. В метатегах должно быть прописано примерно следующее: <meta name=»Generator» content=»Joomla! — Copyright © 2005-2007 Open Source Matters. All rights reserved.» />. Т.е. нам необходимо воспользоваться регуляркой preg_match(‘!<meta name=»Generator» content=»[^»]*Joomla!iUs’, $page_content); В файле robots.txt должна присутствовать следующая строка: Disallow: /components/
vBulletin. Движок vBulletin по внутренним признакам с большой долей вероятности можно определить по наличию метатега: <meta name=»generator» content=»vBulletin 3.8.7″ />
Также его можно определить по наличию на странице http://example.com/login.php?do=login строки: name=»vb_login_md5password»
Если оба этих признака совпадают, то это форумный движок vBulletin.
PHPBB. Форумный движок PHPBB можно определить по наличию метатега copyright и примерно следующего содержания в нем: <meta name=»copyright» content=»2000, 2002, 2005, 2007 phpBB Group» />, а также по наличию следующей строки, если зайти на URL http://example.com/login.php: name=»username». Эти проверки подойдут для старых версий движка, а для новых версий необходимо зайти на URL http://domain.com/ucp.php?mode=login и проверить наличие следующей строки: action=»./ucp.php?mode=login
IPB. Движок IPB можно с большой долей вероятности определить по наличию строки <!—ipb.javascript.start—>. Также в футере страницы должны быть копирайты с названием IP.Board в строке копирайтов. Но для скриптового определения нам хватит и одной строки.
Выше я привел основные признаки, по которым можно с очень большой долей вероятности определить движок сайта. Помимо этих признаков вы можете найти в Google много признаков самых разнообразных CMS и форумных движков. Вот несколько ссылок, где вы можете найти большое количество признаков движков сайтов:
http://contorra.ru/ru/znanie/kak-opredelit-na-kakoi-cms-rabotaet-sait
http://itpride.net/content/media/Tablica-opredelenia-CMS-po-Priznakam.pdf
http://cyber-promo.ru/archives/3487
Теперь переходим к скрипту. Я написал скрипт, который проверяет список доменов на приведенные в статье движки. Пользоваться скриптом просто: достаточно скачать архив и распаковать его содержимое на денвер или сервер, добавить список доменов в файл domains.txt и запускать скрипт из браузера http://your-domain.com/path/engine-parser.php. Результаты будут складываться в файл CMS_NAME.txt, например, vbulletin.txt, dle.txt и т.п.
Не забывайте также о том, что некоторые движки могут не определятся скриптом, из-за того что владельцы сайтов могут прятать признаки движков своих сайтов специально для того чтобы их не парсили. Но в принципе нам такие сайты для наших целей и не нужны, потому что, скорее всего, они строго модерируются и на них быстро прикроют наши дорвеи/ссылки.
Скрипт у меня успешно работает на PHP Version 5.3.3, но я уверен будет работать и на более ранних версиях. Скрипт не требует каких-либо дополнительных модулей PHP и написан так, что программисты смогут быстро добавлять свои анализаторы других движков. Еще раз скажу про список доменов. Где их брать — пусть каждый решает сам, потому что если я выложу на блоге базу доменов, то все сайты быстро «убьются».
Желаю всем удачи в нашем деле, поменьше фильтров и побольше профита! 🙂
Автор статьи: GlebGor.