![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Silent_s |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 2.12.2007 Где: Москва Репутация: нет Всего: 0 |
А никто не знает где можно подробней почитать про поисковых роботов?=)
--------------------
Мой блог |
|||
|
||||
krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 1 Всего: 69 |
В своё время когда потребовалось нарыл много на google по запросу crawler. |
|||
|
||||
Mushu |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 257 Регистрация: 20.7.2004 Репутация: нет Всего: -5 |
Интересная тема нужно ее развивать во всех направлениях. Готов внести свою лептуу
|
|||
|
||||
zjeka |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 15.8.2008 Где: Ukraine Репутация: нет Всего: нет |
Мысли вслух (далеко не оптимистические)
Вы представляете сколько времени понадобится поисковику, чтобы из 65 000 сайтов найти искомый + проверить не удален ли он и если удален прогрузить сохраненную копию. Роботу понадобится непрерывно ходить по инету и собирать новые страницы, обновлять старые. Вы представляете сколько это трафика? ИМХО наиболее рациональный и удобный поиск: имитация паука - проход по всем ссылкам на текущей странице. Такая рекурсия только на 1-м среднего размера сайте (5 страничек) умрет. Но можно, конечно, поработать с отводимой памятью под процесс и т.п. |
|||
|
||||
Boxa |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 25.10.2006 Репутация: -2 Всего: -2 |
обоснуйте свой ответ, отчего же он умрет? ![]() я пока плохо понял, зачем это все надо? какая цель? |
|||
|
||||
Resha |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 14.3.2008 Репутация: нет Всего: нет |
Начнем с того, что каталог Яндекса - это совсем не его поисковый индекс. Каталог - это добавленные вручную пользователями сайты, поисковый индекс (несколько миллиардов страниц) - это страницы, добавленные поисковым роботом. Закончим тем, что задача тривиальна и укладывается в схему: 1. Поиск сайтов: Берем главную страницу какого-нибудь сайта (file_get_contents и т.п. или curl) -> парсим его контент на внутренние ссылки -> по внутренним ссылкам парсим контент на наличие внутренних ссылок. Таким образом, в итоге имеем список всех страниц сайта. Парсим контент всех страниц сайта на внешние ссылки -> получаем адреса главных страниц внешних сайтов. Таким образом, имеем список главных страниц всех сайтов, на которые ссылает данный сайт. Для этого списка снова проделываем пункт 1. (в итоге, пока не получим все линкованные с кем-нибудь домены, не остановимся). 2. Берем главные страницы сайтов, полученные в пункте 1. Парсим их тайтл, кеи и т.п. (preg_match_all и т.п.) Как вы там потом будете в базе организовывать хранение подумайте сами. Вариантов море, причем тривиальных тоже ![]() Добавлено через 10 минут и 7 секунд На некоторые поступившие неоптимистичные мысли: 1.
Такая рекурсия не умрет никогда, ибо это не рекурсия на уровне функций (или методов), это рекурсия на уровне структуры распарсиваемого сайта, которая вас абсолютно не волнует - в каждый момент времени вы работаете (максимум) с двумя объектами: а) контент текущей распарсиваемой страницы б) список всех страниц сайта, которые вы на данный момент уже распарсили (соответственно, их уже не надо парсить и ходить по их ссылкам, найденным в контенте а)) 2. Отслеживание удаления сайта проходит простым ping'ом (если на этапе формирования каталога запоминать IP сайта, то вы сможеет также определить, не сменился ли IP (т.е. вполне вероятно, владелец и контент) сайта, и по смене IP определять необходимость перепарсивания сайта). Вообще, не понятно, автор хочет сделать тупо каталог ссылок на сайты по различной тематике или полноценный поисковик с кешированием (читай Google)? ![]() ![]() |
||||||
|
|||||||
kshyms |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 303 Регистрация: 30.8.2006 Где: Душанбе Репутация: нет Всего: 0 |
Resha, И первое второе Это пока индексация за счет траффика юзера А если сюда добавить генератор и часть кода выполнять в перле или с++ тогда вырисовываются перспективы А это запись индекса то ли в базу то ли еще куда А на счет того что бы все подряд парсить этого нам не потянуть места не хватит и поэтому есть ограничения в 5000 бит. Уже подсчитано 27000*0,1 кбт=1,7 гбт еще можно потянуть Это сообщение отредактировал(а) kshyms - 17.11.2008, 15:02 |
|||
|
||||
zjeka |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 15.8.2008 Где: Ukraine Репутация: нет Всего: нет |
||||
|
||||
kshyms |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 303 Регистрация: 30.8.2006 Где: Душанбе Репутация: нет Всего: 0 |
Заполнение базы в цикле - это уже не проблема , а проблема в разработке
робот паука на php. Пока только главные страницы сайтов лучше грузить. Если из базы вызывается url в цикле по всему полю, то почему то сам файл не загружается пока через include "$f[url]"; Это сообщение отредактировал(а) kshyms - 21.1.2009, 13:18 |
|||
|
||||
CyClon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: нет Всего: 4 |
Я бы не ставил писать паука на PHP... Ущербно.
|
|||
|
||||
krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 1 Всего: 69 |
человеку хочется помучиться, а вообще любой паук это не вопрос языка и его производительности, это вопрос какой объем ему приходиться обрабатывать и сколько серверных ресурсов под это выделено.
не понял насчет этого, если ты хочешь url, спаренный с сайта, подставить в include для загрузки страницы находящейся по данному url, то так неделают, для скачки страницы по url используй curl, хотя возможно ты что то другое имеешь ввиду |
|||
|
||||
kshyms |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 303 Регистрация: 30.8.2006 Где: Душанбе Репутация: нет Всего: 0 |
krundetz,
Все дело в том что из базы в цикле уже вызываются линки сайтов в цикле но посредством include $f[url]; не загружаются главные страницы Добавлено через 6 минут и 28 секунд krundetz,
Одобряем, но если его сделать на php, тогда можно будет у этого алгоритма синтаксис поменять и его на C можно будет перевести, если будут проблемы со скоростью. И еще я думаю если его кроном вызывать тогда он намного меньше ресурсов будет потреблять, даже если он будет написан на PHP. |
||||
|
|||||
meekman |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 20.1.2008 Репутация: нет Всего: нет |
Внесу свою лепту:
1. Считаю, что писать паука нужно на C(на компилируемом языке) - это вопросы использования процессора. Очевидно, что php будет на пару порядков дольше выполнять ту же операцию, чем си. 2. Но допустим на php легче и удобнее для разработчика. Стоит разделить программу на части: 1. "паук" собирает url с страничек и сохраняет в бд. 2. "анализатор" обращается к url, находящимся в БД и, получив данные, начинает разбор контента. Для того, чтобы иметь возможность искать по собранным данным - необходимо анализировать их слова. В простейшем случае, как уже упоминалось, просто разбить html код на слова, исключить теги и js,css вставки и сохранить результаты в бд. Механизм релевантности - чем больше запрошенных слов на странице, тем выше она будет в результатах. Теперь если в запросе есть слово, находящееся на этой страничке - она будет указана в результатах. Но это очень неэффективный в плане релевантности механизм. Может, задача такого робота не в собирании информации - это простое дело, а в анализе релевантности страницы, в выяснении ее смысла и именно в этом направлении нужно думать. Алгоритм анализа страниц - это патентованная технология каждой поисковой кампании, ее самая оберегаемая тайна =) |
|||
|
||||
zim2slim |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 8.1.2009 Где: Ростов на Дону Репутация: нет Всего: нет |
ребят вы че.. а я это парсером называю...
чет какие то простые задачи... а смысл такого робота??? |
|||
|
||||
kshyms |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 303 Регистрация: 30.8.2006 Где: Душанбе Репутация: нет Всего: 0 |
|
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Для профи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |