- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Приветствую!
Я решил написать (ради практики) паука, который будет рыскать по сегменту UZ
Сам я живу в Ташкенте :)
И так, у меня к Вам несколько вопросов!
1. Можно ли использовать MySQL базу для хранения данных?
2. как лучше хранить данные? (урл - слово или урл - фраза)
Конечно, можно.
Вы паука хотите написать или что-то другое? Или какое отношение к нему имеет "слово" или "фраза" ?
Паук просто читает страницы. К индексации он отношения не имеет. Для начала просто проверьте правильность его работы: правильно ли он ищет и интерпретирует ссылки, правильно ли качает страницы, правильно ли редиректит их; фреймы опять же, пусть читает. Если вы еще этим не занимались, то могу заметить, что до индексации придется подождать: почитайте о протоколе HTTP, о настройках сокетов и все такое...
А статистику паука хранить в MySQL, разумеется, можно.
Индексатора и краулера в одной программе!
Дело в том, что в Ташкенте траффик дорогой и место на серваках тоже!
Я так понял, что краулер качает страничку, обрабатывает ссылки, а индексатор, закачивает её опять (с мира или локального ресурса) и индексирует! Я же хочу одновременно и обрабатывать ссылки и индексировать за один "шаг".
Это как? Мне казалось, что краулер ищет ссылки, а паук (индексатор) обрабоатывает документ!
Пишу я на Си под линукс!
Сейчас основная проблема - разработка структры базы данных!
Есть, конечно же, более мелкие проблемы, но они со временем решатся!
Слонжовато писать на Сях, Си, как известно, не поддерживает строки и, следовательно, остожняет разработку! Подумывал писать на Python-е, но Питон плохо знаю и потом, он скриптовый!
Что посоветуете? Учить питон (забросить Си) или все же мучиться! Это чисто моя инициатива - создать паука для зоны Уз!
Не так. Краулер занимается и закачиванием документов, и извлечением из них ссылок. Индексатор создает поисковые индексы, по которым идет сам поиск.
Что посоветуете? Учить питон (забросить Си) или все же мучиться! Это чисто моя инициатива - создать паука для зоны Уз!
Используйте C++, там есть библиотеки STL для работы со строками.
Vyacheslav Tikhonov,
Лучше, наверное, на С++.
Структура БД, как мне показалось - не самое сложное. Сложнее построить демона так, чтобы он работал многопоточно, по графику, чтобы он правильно понимал, куда идти по ссылке, куда редиректить, понимал ответы сервера, читал фреймы, (robots.txt - это когда ваш агент-поисковик уже имеет имя в Сети) и извлекал из доков правильные ссылки, а потом разбирал, когда и как их обрабатывать.
Опять же, неплохо приаттачить к этому демону независимый мониторинг - чтобы смотрел, что и сколько качается в каком потоке в данный момент, что висит, что вообще failed...
Кроме того, не все, скажем, узбекистанские, сайты будут в области .uz. Надо смотреть, к узбекистанской ли сети принадлежит айпишник. Ну и куча других мелких проблем.
Есть правила для всех роботов, их даже безымянному пауку лучше придерживаться, иначе вполне могут блокировать доступ с IP, откуда паук ходит.
lagif, для начала я хочу написать простого паука!
А почему бы не объеденить это в одну программу!
Пусть скачивает страничку, ищет ссылки и ключевые слова! Мне кажется, тут нет минусов! а +: меньше траффика!
Chuck, такое впечталение что вы несколько заблуждаетесь в представлении о работе пауа.
1. задача паука - идти по заданному списку ссылок и подготовить информацию (тект\ссылки) для последующей обработки. естественно эта информация храниться ЛОКАЛЬНО,
и никто не скачивает несколько раз страницу для того чтобы вначале выдернуть из нее линки,потом текст, а потом разметку хтмл или еще что то.
2. пауком можно называть как скрипт который непосредственно скачивает (проверяет) нужный контент, но и набор скриптов которые не только скачивают, но и анализируют контент.
3. можно в одном скрипте совместить и закачку контента, и его анализ, но если вы собираетесь индексировать большие обьемы информации (а у вас это и подразумевается), то у вас возникнет проблема простоя мощностей.
обьясню на примере...
допустим скрипту требуется 1 секунда на то чтобы закачать документ и еще 1 секунда уходит на его обработку.
если эти функции совмещены в одном скрипте то за 1 минуту вы сможете проиндексировать всего 30документов.
при этом у вас простаивает 50% от процессора (во время загрузки документа) и 50% от загрузки канала (во время анализа).
а если этим занимаются паралельные скрипты то за минуту вы индексируете 60документов.
далее все будет веселее, если у вас однопотоковая система то у вас в любом случае получается что будут колосальные простои мощности (особенно если в списке урлов попадеться один сайт который будет тормозить или отваливаться по таймауту секунд этак через 60), поэтому надо делать многопоточную систему. способную к распределенным вычислениям и постановкам задач.
тогда за туже минуту вместо 60 документов вы будете в состоянии проиндекировать 6000.
далее, не обольщайтесь что если вы хотите индексировать только УЗ сайты, то у вас будет маленький индекс. проблема маленького сегмента - в его разрознености, вы можете проиндексировать несколько замкнутых сайтов составляющих часть этого сегмента, но это не даст вам индекса ВСЕХ сайтов.
для того чтобы проиндексировать ВСЕ УЗ сайты вам придеться переодически выходить за рамки УЗ сегмента чтобы проиндексировать более глобальные вещи и через них найти другие сегменты УЗ сайтов.
далее майСКЛ - хороший выбор для тестов, но для продакшн системы это не есть лучший вариант.
Си хороший язык и сам по себе краулер стоит писать именно на нем.
но вот систему анализа стоит делать на языке который позволит нормально обрабатывать тексты в вашей национальной кодировке и т.д (хотя некоторые в уникод предпочитают все переводить и работать с ним, но имхо это уменьшает функционал и повышает процессорное время требуемое на обработку данных).
гугл и инктоми на питоне вроде когда то делали, по мне так перл и РНР тоже для этой цели подойдут, но ресурсов очень много жрать будут.
п.с. и не пытайся сделать сразу глобальный скрипт для поиска в интернете. для начала скопируй пару сайтов локально и потренируйся на них. а то неграмотные алгоритмы реализации могут привести к печальным последствиям :)
Chuck,
Индексацию лучше рассматривать как отдельный процесс. В нем есть свои тонкости: парсинг html-контента, определение веса слов, морфологический разбор, наконец. Даже если у вас получится совместить два процесса, чтоб они работали экстра-мега-супер-быстро, над индексатором работать желательно отдельно.
Библиотеки там подгружаемые... ну, у кого как :) Думается, лучше ползание по сети и индексацию распараллелить. И кто вам сказал, что качать придется дважды?
Cherny, Вы, безусловно, правы. Правила роботов - есть правила роботов.
:)
crawler, spider, search engine => http://scholar.google.com