Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Скрипт паука порекомендуйте. проверка собственного сайта. 
:(
    Опции темы
ksnk
Дата 26.5.2014, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Некий сайт рос-рос и загадился непонятным загруженным контентом и непонятными картинками. Появилась задача честно просканировать сайт и выковырять ссылки на всю загруженную используемую требуху, чтобы ненужную можно было безопасно выкинуть. Задача достаточно универсальная и, imho, востребованная. Нет ли у кого собственного паучка, или какой удачный скрипт? В принципе - не очень сложно и самому написать, но при большом велопарке разумнее взять покататься готовый и немного переделать, если потребуется smile

Мне видятся такие задачи для сканера сайта:
- запуск из локально установленного php. Не принципиально, но мне удобнее гонять его под phpstorm. По идее - никаких ограничений, кроме отсутствия заголовков сервера не вижу.
- сбор имен картинок, css и рессурсов. Для последующей чистки каталога картинок-загрузки.
- некоторые фенечки грузятся ajax'ом, так что нужно начинать не только с индексной страницы, но и со списка страниц.
- сканер страниц должен удобно настраиваться, так как адреса некоторых рессурсов указаны в атрибутах html-сущьностей.
- индексация для поиска самого сайта. (совершенно ненужная фича при живом сфинксе, но есть несколько сайтов без сфинкса.) 
- проверка дохлых ссылок
- еще что-нибудь умное, наверное.

Может есть у кого?


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
ksnk
Дата 4.6.2014, 18:14 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Никто не торопится, почему то, хвастаться, так что я тему апну  smile 

В процессе поиска, не торопясь перековырял какое то количество пауков. Довольно забавный пример был найден здесь, на этом форуме - скрипт от Юстаса. Он умеет, в частности, в консоли выбирать свои действия с помощью меню и с разумным количеством магии даже был запущен у меня на тестовом сайте, под штормом. Делает он не совсем то, что мне надо, но это уже дело поправимое.
Проблема того скрипта, imho, оказалась в жесткой системе консольного меню. Разглядывая меню, мне показалось, что что-то подобное я уже видел. Это же обычный текстовый квест  smile Поковыряв немного гугель, нашел русский сайт с источником квестов и описания языка URQL. Еще немного поразбиравшись в языке описания, накропал на php консольную "ходилку" по квестовым файлам. Изделие получилось довольно страшнО и коряво, но квесты проигрывает. 

Вот так вот, до реально работающего паука все еще далековато, а работа куда-то уже закопалась  smile 

Это сообщение отредактировал(а) ksnk - 4.6.2014, 20:22


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
zero50x
Дата 4.6.2014, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 13.4.2007
Где: Нижний Новгород

Репутация: нет
Всего: 0



У меня есть паук на парсинг title но тут не то. Собирался его доделать для поиска битых картинок, но пока руки не доходят. По поводу остального функционала не очень понял что нужно, в частности зачем имена картинок и css собирать? css что много на сайте, каждый юзер свою грузит?

> чистки каталога картинок-загрузки

так а критерии чистки какие будут?

> но и со списка страниц

если загрузить в скрипт карту сайта, то можно обойтись без сканера страниц
PM MAIL   Вверх
ksnk
Дата 4.6.2014, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Задач, вообще говоря, две.

Чистка от битых ссылок на несуществующие(на своем сайте и внешних) ресурсы. Тут нужно анализировать css и уметь строить дополнительные комплекты "ручных" правил для неожиданных скриптовых приложений, галереи всякие и так далее.

Основная задача - чистка самого сайта от ненужных ресурсов. Все старые картинки и загрузки, которые уже не нужны для функционирования сайта, нужно отметить и, при необходимости,  удалить. Эта задача заключается в перечислении используемых,  нумерации всех ресурсов сайта и выводе разницы.

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

Первая задача довольно успешно решена в броузерах, в консоли отладки Хрома все это все отсутсвующие ссылки прекрасно видно. Проблема только в автоматизации этого процесса.

Можно порешать проблему "подсчета" ресурсов прямо на сервере. Например перекинуть все картинки в отдельный каталог, перенаправить "отсутсвующий uri" в файл, который переместить нужный файл оттуда на родное место. Через несколько дней можно просто удалить тот отдельный каталог, в котором останется только мусор.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
zero50x
Дата 5.6.2014, 07:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 13.4.2007
Где: Нижний Новгород

Репутация: нет
Всего: 0



Да, всё понятно. Довольно редкий софт.
PM MAIL   Вверх
ksnk
Дата 5.6.2014, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Я не про то, что "дайте мне" ;) Я сам напишу. Но примеры удачных паучков был бы рад посмотреть. Самому наковырять свободных скриптов - несложно, но какие то отзывы по коду были бы благодарно прочитаны...


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
krundetz
Дата 26.6.2014, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 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, но вообще я думаю что ты решаешь задачу не с той стороны. Насколько я понял тебе необходимо реализовать сборщик мусора, так как с момента создания сайта на нем накопилось куча всего что сейчас не используется на страницах сайта. Для этого лучше работать с БД и собственно файловой системой. Ведь при генерации страниц информация для них берется опять же из БД и файловой системы.

Цитата(zero50x @  5.6.2014,  07:02 Найти цитируемый пост)
Да, всё понятно. Довольно редкий софт. 

софт не редкий просто пишется под конкретные задачи, и довольно таки просто реализуется


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
ksnk
Дата 26.6.2014, 07:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



krundetz, Проблема того и не только того сайта в том, что все страницы сайта только одной базой не вычисляются. За время жизни сайта были налеплены новые страницы, разные неучтенные баннеры и прочий обвес, который идет не через базу, а мимо установленной CMS. То есть, полностью вычислить используемый сейчас комплект обслуживаемых сайтом URI можно только просканировав весь сайт. Паучком. Понятно, что тут естественным образом появляется задача прочистить еще и базу, сравнив URI, которые потенциально обслуживает система с теми, которые реально доступны по дереву сайта, но основная задача - прочистить от лишнего мусора картинки и ресурсы.




--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
krundetz
Дата 29.6.2014, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 20
Всего: 69



ksnk,  smile как все однако сложно.


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
krundetz
Дата 3.7.2014, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 20
Всего: 69



ksnk, в журнале "системный администратор" за апрель этого года есть обзор софта, который может тебе помочь. Там правда упор делается на нахождение битых ссылок, но описываемый софт может решить и часть твоих проблем.


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0945 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.