![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Некий сайт рос-рос и загадился непонятным загруженным контентом и непонятными картинками. Появилась задача честно просканировать сайт и выковырять ссылки на всю загруженную используемую требуху, чтобы ненужную можно было безопасно выкинуть. Задача достаточно универсальная и, imho, востребованная. Нет ли у кого собственного паучка, или какой удачный скрипт? В принципе - не очень сложно и самому написать, но при большом велопарке разумнее взять покататься готовый и немного переделать, если потребуется
![]() Мне видятся такие задачи для сканера сайта: - запуск из локально установленного php. Не принципиально, но мне удобнее гонять его под phpstorm. По идее - никаких ограничений, кроме отсутствия заголовков сервера не вижу. - сбор имен картинок, css и рессурсов. Для последующей чистки каталога картинок-загрузки. - некоторые фенечки грузятся ajax'ом, так что нужно начинать не только с индексной страницы, но и со списка страниц. - сканер страниц должен удобно настраиваться, так как адреса некоторых рессурсов указаны в атрибутах html-сущьностей. - индексация для поиска самого сайта. (совершенно ненужная фича при живом сфинксе, но есть несколько сайтов без сфинкса.) - проверка дохлых ссылок - еще что-нибудь умное, наверное. Может есть у кого? -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Никто не торопится, почему то, хвастаться, так что я тему апну
![]() В процессе поиска, не торопясь перековырял какое то количество пауков. Довольно забавный пример был найден здесь, на этом форуме - скрипт от Юстаса. Он умеет, в частности, в консоли выбирать свои действия с помощью меню и с разумным количеством магии даже был запущен у меня на тестовом сайте, под штормом. Делает он не совсем то, что мне надо, но это уже дело поправимое. Проблема того скрипта, imho, оказалась в жесткой системе консольного меню. Разглядывая меню, мне показалось, что что-то подобное я уже видел. Это же обычный текстовый квест ![]() Вот так вот, до реально работающего паука все еще далековато, а работа куда-то уже закопалась ![]() Это сообщение отредактировал(а) ksnk - 4.6.2014, 20:22 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
zero50x |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 13.4.2007 Где: Нижний Новгород Репутация: нет Всего: 0 |
У меня есть паук на парсинг title но тут не то. Собирался его доделать для поиска битых картинок, но пока руки не доходят. По поводу остального функционала не очень понял что нужно, в частности зачем имена картинок и css собирать? css что много на сайте, каждый юзер свою грузит?
> чистки каталога картинок-загрузки так а критерии чистки какие будут? > но и со списка страниц если загрузить в скрипт карту сайта, то можно обойтись без сканера страниц |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Задач, вообще говоря, две.
Чистка от битых ссылок на несуществующие(на своем сайте и внешних) ресурсы. Тут нужно анализировать css и уметь строить дополнительные комплекты "ручных" правил для неожиданных скриптовых приложений, галереи всякие и так далее. Основная задача - чистка самого сайта от ненужных ресурсов. Все старые картинки и загрузки, которые уже не нужны для функционирования сайта, нужно отметить и, при необходимости, удалить. Эта задача заключается в перечислении используемых, нумерации всех ресурсов сайта и выводе разницы. Остальные задачи - типа индексации - это от лукавого, если есть - хорошо, нету - допишем, если действительно понадобится. Первая задача довольно успешно решена в броузерах, в консоли отладки Хрома все это все отсутсвующие ссылки прекрасно видно. Проблема только в автоматизации этого процесса. Можно порешать проблему "подсчета" ресурсов прямо на сервере. Например перекинуть все картинки в отдельный каталог, перенаправить "отсутсвующий uri" в файл, который переместить нужный файл оттуда на родное место. Через несколько дней можно просто удалить тот отдельный каталог, в котором останется только мусор. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
zero50x |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 13.4.2007 Где: Нижний Новгород Репутация: нет Всего: 0 |
Да, всё понятно. Довольно редкий софт.
|
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Я не про то, что "дайте мне" ;) Я сам напишу. Но примеры удачных паучков был бы рад посмотреть. Самому наковырять свободных скриптов - несложно, но какие то отзывы по коду были бы благодарно прочитаны...
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
ksnk, порекомендовать ничего не могу, могу рассказать как решал похожую задачу.
Задача состояла в том чтобы у страниц на сайте был только один URL и чтобы скрытые страницы были не доступны в клиентской части. исходные данные: 1. Доступ к БД, соответственно знаю какие страницы должны быть опубликованы, а какие скрыты 2. Правила генерации URL-ов известны 3. За годы использования движка, выявлены наиболее типичные варианты дублирования страниц. Они связанные с необдуманным внесением разработчиками изменений в ядро движка и непродуманной реализацией модулей ответственных за отображение страниц. По ним составлен справочник. Скрипт писался для автоматизации проверки по этому справочнику. Реализация: 1. Реализовал класс очереди проверки (с выходом PHP версии 5.3 для этих целей нужно использовать класс SplQueue из SPL ). 2. Реализовал генератор URL-ов для проверки. Полученные URL-ы помещаются в очередь. 3. Для получения кодов ответа на запрос конкретного URL-а использую класс из pear HTTP_Request2. 4. Вывожу список проблемных страниц требуемые условия для которых не соблюдаются. Описанная тобой задача может быть решена аналогично. Только необходимо кое что изменить и дополнить: 1. Вместо генератора у URL-ов, тебе необходимо будет реализовать механизм извлечения URL-ов состраницы 2. Реализовать класс коллекции ( хотя это может быть ассоциативный массив, ключами в котором будут url ). Он необходим чтобы помещать в него уже обработанные URL, иначе скрипт зациклиться. 3. Реализовать класс Очереди. У которого в методе добавления нового элемента инкапсулировать проверку на наличие добавляемого URL-а в коллекции уже обработанных. А в методе извлечения URL-a из очереди инкапсулировать перевод этого URL-а в коллекцию уже обработанных. 4. Реализовать проверку полученных данных на основание твоих критериев. ksnk, но вообще я думаю что ты решаешь задачу не с той стороны. Насколько я понял тебе необходимо реализовать сборщик мусора, так как с момента создания сайта на нем накопилось куча всего что сейчас не используется на страницах сайта. Для этого лучше работать с БД и собственно файловой системой. Ведь при генерации страниц информация для них берется опять же из БД и файловой системы. софт не редкий просто пишется под конкретные задачи, и довольно таки просто реализуется |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
krundetz, Проблема того и не только того сайта в том, что все страницы сайта только одной базой не вычисляются. За время жизни сайта были налеплены новые страницы, разные неучтенные баннеры и прочий обвес, который идет не через базу, а мимо установленной CMS. То есть, полностью вычислить используемый сейчас комплект обслуживаемых сайтом URI можно только просканировав весь сайт. Паучком. Понятно, что тут естественным образом появляется задача прочистить еще и базу, сравнив URI, которые потенциально обслуживает система с теми, которые реально доступны по дереву сайта, но основная задача - прочистить от лишнего мусора картинки и ресурсы.
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
ksnk,
![]() |
|||
|
||||
krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
ksnk, в журнале "системный администратор" за апрель этого года есть обзор софта, который может тебе помочь. Там правда упор делается на нахождение битых ссылок, но описываемый софт может решить и часть твоих проблем.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |