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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> решил сделать робот поиска сайтов на PHP 
:(
    Опции темы
Silent_s
Дата 9.5.2008, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



А никто не знает где можно подробней почитать про поисковых роботов?=)
--------------------
Мой блог
PM MAIL   Вверх
krundetz
Дата 13.5.2008, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(Silent_s @ 9.5.2008,  10:06)
А никто не знает где можно подробней почитать про поисковых роботов?=)

В своё время когда потребовалось нарыл много на google по запросу crawler.


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


Опытный
**


Профиль
Группа: Участник
Сообщений: 257
Регистрация: 20.7.2004

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



Интересная тема нужно ее развивать во всех направлениях. Готов внести свою лептуу
PM MAIL   Вверх
zjeka
Дата 22.9.2008, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 15.8.2008
Где: Ukraine

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



Мысли вслух (далеко не оптимистические)

Вы представляете сколько времени понадобится поисковику, чтобы из 65 000 сайтов найти искомый + проверить не удален ли он и если удален прогрузить сохраненную копию.

Роботу понадобится непрерывно ходить по инету и собирать новые страницы, обновлять старые.

Вы представляете сколько это трафика?

ИМХО наиболее рациональный и удобный поиск: имитация паука - проход по всем ссылкам на текущей странице.

Такая рекурсия только на 1-м среднего размера сайте (5 страничек) умрет.

Но можно, конечно, поработать с отводимой памятью под процесс и т.п.
PM MAIL ICQ   Вверх
Boxa
Дата 30.9.2008, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 25.10.2006

Репутация: -2
Всего: -2



Цитата(zjeka @ 22.9.2008,  21:47)
Мысли вслух (далеко не оптимистические)

Вы представляете сколько времени понадобится поисковику, чтобы из 65 000 сайтов найти искомый + проверить не удален ли он и если удален прогрузить сохраненную копию.

Роботу понадобится непрерывно ходить по инету и собирать новые страницы, обновлять старые.

Вы представляете сколько это трафика?

ИМХО наиболее рациональный и удобный поиск: имитация паука - проход по всем ссылкам на текущей странице.

Такая рекурсия только на 1-м среднего размера сайте (5 страничек) умрет.

Но можно, конечно, поработать с отводимой памятью под процесс и т.п.

обоснуйте свой ответ, отчего же он умрет?  smile 

я пока плохо понял, зачем это все надо? какая цель?
PM MAIL   Вверх
Resha
Дата 22.10.2008, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 14.3.2008

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



Цитата(kshyms @ 26.12.2007,  17:35)
Цитата

Такой поисковик будет адски медленно работать. 
 Главное чтоб работало, а вручную сайты добавлять долгая история. Задача простая ускорить заполнение каталога и  заменить модератора роботом. 
загрузка и генерация 1 сайт/ мин + анализ 1 мин + индексация заголовок и ключевые слова 2 мин=4 мин  
15 сайтов в час и в день 225 сайтов. В  каталоге Яндекс 65000 сайтов. Яндекс работает  с 1996 года. Легко подсчитать сколько нужно времени, что бы приблизиться к этому уровню хотя бы теоретически.

Начнем с того, что каталог Яндекса - это совсем не его поисковый индекс. Каталог - это добавленные вручную пользователями сайты, поисковый индекс (несколько миллиардов страниц) - это страницы, добавленные поисковым роботом.

Закончим тем, что задача тривиальна и укладывается в схему:
1. Поиск сайтов:
Берем главную страницу какого-нибудь сайта (file_get_contents и т.п. или curl) -> парсим его контент на внутренние ссылки -> по внутренним ссылкам парсим контент на наличие внутренних ссылок.
Таким образом, в итоге имеем список всех страниц сайта.
Парсим контент всех страниц сайта на внешние ссылки -> получаем адреса главных страниц внешних сайтов.
Таким образом, имеем список главных страниц всех сайтов, на которые ссылает данный сайт.
Для этого списка снова проделываем пункт 1. (в итоге, пока не получим все линкованные с кем-нибудь домены, не остановимся).
2. Берем главные страницы сайтов, полученные в пункте 1. Парсим их тайтл, кеи и т.п. (preg_match_all и т.п.)

Как вы там потом будете в базе организовывать хранение подумайте сами. Вариантов море, причем тривиальных тоже smile Удачи.

Добавлено через 10 минут и 7 секунд
На некоторые поступившие неоптимистичные мысли:
1.
Цитата
наиболее рациональный и удобный поиск: имитация паука - проход по всем ссылкам на текущей странице.
Такая рекурсия только на 1-м среднего размера сайте (5 страничек) умрет


Такая рекурсия не умрет никогда, ибо это не рекурсия на уровне функций (или методов), это рекурсия на уровне структуры распарсиваемого сайта, которая вас абсолютно не волнует - в каждый момент времени вы работаете (максимум) с двумя объектами:
а) контент текущей распарсиваемой страницы
б) список всех страниц сайта, которые вы на данный момент уже распарсили (соответственно, их уже не надо парсить и ходить по их ссылкам, найденным в контенте а))

2. Отслеживание удаления сайта проходит простым ping'ом (если на этапе формирования каталога запоминать IP сайта, то вы сможеет также определить, не сменился ли IP (т.е. вполне вероятно, владелец и контент) сайта, и по смене IP определять необходимость перепарсивания сайта).



Вообще, не понятно, автор хочет сделать тупо каталог ссылок на сайты по различной тематике или полноценный поисковик с кешированием (читай Google)? smile Если первое - мы тут все всё усложняем, если второе - ... smile
PM MAIL   Вверх
kshyms
Дата 13.11.2008, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 303
Регистрация: 30.8.2006
Где: Душанбе

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



Цитата

если второе

Resha,  И первое   второе Это пока индексация за счет траффика юзера  А если сюда добавить генератор и часть кода выполнять в перле или с++ тогда вырисовываются перспективы 
А это запись индекса  то ли в базу то ли еще куда  А на счет того что бы все подряд парсить этого нам не потянуть места не хватит и поэтому есть ограничения в 5000 бит. Уже подсчитано 27000*0,1 кбт=1,7 гбт еще можно потянуть

Это сообщение отредактировал(а) kshyms - 17.11.2008, 15:02
PM MAIL WWW Skype   Вверх
zjeka
Дата 16.11.2008, 00:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 15.8.2008
Где: Ukraine

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



Цитата(Resha @  22.10.2008,  17:23 Найти цитируемый пост)
Если первое - мы тут все всё усложняем, если второе - ... smile 

+1

Может не стоит делать поисковик на PHP и доверить реализацию С-ишникам.
PM MAIL ICQ   Вверх
kshyms
Дата 21.1.2009, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 303
Регистрация: 30.8.2006
Где: Душанбе

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



Заполнение базы в цикле - это уже не проблема , а проблема в разработке 
робот паука на php. Пока только главные страницы сайтов лучше грузить.
Если из базы вызывается url в цикле по всему полю, то почему то сам файл не загружается пока через include "$f[url]";                 

Это сообщение отредактировал(а) kshyms - 21.1.2009, 13:18
PM MAIL WWW Skype   Вверх
CyClon
Дата 21.1.2009, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

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



Я бы не ставил писать паука на PHP... Ущербно.


--------------------
user posted image
PM   Вверх
krundetz
Дата 22.1.2009, 00:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(CyClon @  21.1.2009,  20:19 Найти цитируемый пост)
Я бы не ставил писать паука на PHP... Ущербно. 

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


Цитата(kshyms @  21.1.2009,  12:53 Найти цитируемый пост)
Если из базы вызывается url в цикле по всему полю, то почему то сам файл не загружается пока через include "$f[url]";

не понял насчет этого, если ты хочешь url, спаренный с сайта, подставить в include для загрузки страницы находящейся по данному url, то так неделают, для скачки страницы по url используй curl, хотя возможно ты что то другое имеешь ввиду


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


Опытный
**


Профиль
Группа: Участник
Сообщений: 303
Регистрация: 30.8.2006
Где: Душанбе

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



krundetz

Цитата

не понял насчет этого, если ты хочешь url, спаренный с сайта, подставить в include для загрузки страницы находящейся по данному url, то так неделают, для скачки страницы по url используй curl, хотя возможно ты что то другое имеешь ввиду 

Все дело в том что из базы в цикле уже вызываются линки сайтов в цикле но посредством include $f[url]; не загружаются  главные страницы

Добавлено через 6 минут и 28 секунд
krundetz
Цитата

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

Одобряем, но если его сделать на php, тогда можно будет  у этого алгоритма синтаксис поменять и его на C можно будет перевести, если будут проблемы со скоростью. И еще я думаю если его кроном вызывать тогда он намного меньше ресурсов будет потреблять, даже если он будет написан на PHP.
PM MAIL WWW Skype   Вверх
meekman
Дата 23.1.2009, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 20.1.2008

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



Внесу свою лепту:

1. Считаю, что писать паука нужно на C(на компилируемом языке) - это вопросы использования процессора. Очевидно, что php будет на пару порядков дольше выполнять ту же операцию, чем си.

2. Но допустим на php легче и удобнее для разработчика. 
   Стоит разделить программу на части:
   1. "паук" собирает url с страничек и сохраняет в бд.
   2. "анализатор" обращается к url, находящимся в БД и, получив данные, начинает разбор контента.

   Для того, чтобы иметь возможность искать по собранным данным - необходимо анализировать их слова. В простейшем случае, как уже упоминалось, просто разбить html код на слова, исключить теги и js,css вставки и сохранить результаты в бд. Механизм релевантности - чем больше запрошенных слов на странице, тем выше она будет в результатах. Теперь если в запросе есть слово, находящееся на этой страничке - она будет указана в результатах. Но это очень неэффективный в плане релевантности механизм.

Может, задача такого робота не в собирании информации - это простое дело, а в анализе релевантности страницы, в выяснении ее смысла и именно в этом направлении нужно думать. 

Алгоритм анализа страниц - это патентованная технология каждой поисковой кампании, ее самая оберегаемая тайна =)


PM MAIL   Вверх
zim2slim
Дата 23.1.2009, 02:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



ребят вы че.. а я это парсером называю...
чет какие то простые задачи... 
а смысл такого робота???
PM MAIL ICQ YIM   Вверх
kshyms
Дата 23.1.2009, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 303
Регистрация: 30.8.2006
Где: Душанбе

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



Цитата

а смысл такого робота??? 
 В том что бы поиск для юзера был удобнее и оперативнее, а кто это сделает тот и будет в фаворе..
PM MAIL WWW Skype   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

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


 




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


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

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