- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Доброго времени суток...
недавно задался вопросом, как написать робота???
у кого-нибудь есть соображения на этот счет?
Что должен делать робот?
Робот должен индексировать сайты. У меня сущсествует ряд предложений по этому поводу.
1.1 Когда ты заглотил содержимое HTML-ки, как строку из HTTP клиента ты должен выкинуть из нее все теги. Разумеется надо соблюдать все правила HTML - выкидывать комментарии, блоки тегов типа script и т.д. обычные теги можно просто выкидывать. Потом последовательно вытаскивать из получившейся строки слова. (см. ниже).
1.2 Заноси все слова, которые только сможешь найти. За слово считать
непрерывную последовательность допустимых символов. Допустимыми считать английский алфавит, цифры, русский алфавит и некоторые спец. знаки (напр. тире). Т.е. даже "a", "но" или "варумпик-стривомнлунс" считать за слова.
1.3. Именно так работает например teleport pro. Алгоритм тоже есть - после того как заглотили HTML-ку выполняем след. дейсвтия:
1.3.а. проверяем можно ли эту html-ку индексировать вообще (мета-теги для роботов и expiration-time в заголовках http-ответа).
1.3.б. находим все ссылки, похожие на URL в тексте полученного документа. следует помнить, что ссылки бывают абсолютные (типа http://www.net.org/path/homepage.html) и относительные. следует так же помнить, что относительные в свою очередь делятся на ссылки от корня сайта (типа /dir/page.htm) и ссылки от текущего документа (типа
somepath/page2.htm). Всё это надо учитывать.
1.3.в заносим все эти полученные URL-и в список уже имеющихся в базе. Повторений не допускать. Если ссылка уже была посещена тоже не делать ничего.
1.3.г. обрабатываем страничку по пунктам 1.1 и 1.2.
1.4. переходим к следующей непосещенной страничке из списка накопленных на пункте 1.3.в.
xm я бы порекомендовал следующую структуру БД (лучше чтобы она была реляционной, но можно и без этого):
таблица "словарь":
id (index) | word (string)
таблица "страницы":
id (index) | URL (string) | expiration (datetime) | visited (boolean)
таблица "слова" (основная):
id (index) | word_id (index from "словарь") | page_id (index from
"страницы") | count (integer)
Предположим что было расчитано ниже в таблице "словарь"
накопилось 450000 записей. Пусть, на среднестатичтическом сайте находится 1000 страниц, а на каждой странице в среднем по 500 неповторяющихся слов. Т.о. получаем, что на каждый сайт мы получаем по 500000 записей в таблице "слова". Это уже серьезная нагрузка, но для индексирования только собственного сайта вполне реализуемо. Кроме того ты можешь отсекать общеупотребительные междометия, которые бы составляли 10-30% этой нагрузки типа "но", "а" и т.д. Для этого нужно было бы еще в таблицу словарь добавить поле "запрещено" типа boolean. Этим ты можешь снизить нагрузку.
"Класификатор" написали, теперь робота пишем. 😂
Могу дать 3 самодельных скрипта на перле - робот, разборщик индекса и скрипт поиска, если надо. А ты мне что-нибудь хорошее, например, ссылку :) Написанное под одну систему, работает на сайте в профиле.
Rodion, что-то ты все напрочь перемешал. Робот, то есть спайдер, должен только ходить по неизвестным ссылкам и складывать страницы в хранилище, а индексатор только обрабатывать эти страницы и создавать индексы. При этом сохранять все в реляционных базах не самая лучшая идея - как ты сможешь потом обновлять индекс, если какая-нибудь страница изменилась?
Не могли бы вы дать ссылку где почитать теорию, или написать прямо здесь в форуме.
Если я правильно понял, то спайдер - это то, что я назвал роботом. Правильно?
А вот, что такое индексатор я не понял. Если можно, то по подробнее.Interitus, что такое классификатор
Правильно. К сожалению, на русском языке литературы по этой теме почти нет. Для поверхностного ознакомления с архитектурой поисковой системы могу порекомендовать разве что эту
ссылку. Если с английским проблем нет, то для понимания принципов будет достаточно прочтения одного документа.
что такое классификатор
На форуме г-н MSA a очень бурно развивал научную дискуссию в стиле профессора Выбегалло. :) Вот результаты его трудов:
С уважением,
Александр Садовский.
Вот вы здесь все боитесь идею выдать или ещё что.
А мне и не надо рассказывать как именно вы это реализовывали и в каких продуктах. Меня, например, эта тема заинтересовала, потому что тема дипломной такая. И мне бы сейчас теорию почитать. Всё равно я вам конкуренцию не составлю.
Vyacheslav Tikhonov, Почему сохранять все в реляционных базах не самая лучшая идея? По моему хорошая идея. У меня даже требования к диплому SQL Server.
2Andrew.Balan
Да, молодой человек, хорошо начинаете...
Неужто Вам приведенных Вячеславом ссылок мало для начала работы? Кстати, никакой особенной идеи - "волшебной палочки" в написании паука нет. Все довольно примитивно, но довольно трудоемко.