Помогите с алгоритмом паука

toxass

Client
Регистрация
18.03.2010
Сообщения
280
Благодарностей
12
Баллы
18
Есть задача спарсить все ссылки с сайта. Сам сайт около 5 000 000 страниц. Какой алгоритм в шаблоне использовать, чтобы обойти все страницы?

Попробовал парсить все ссылки, потом переходить по ним и удалять дубли. Не помогло. Слишком маленький КПД, страницы повторяются. Нужно как-то исключать страницы по которым уже был переход. Может кто-то знает, как это реализовать?
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
я вот как раз вчера начал краулера под это дело писать на шарпе, из за больших размеров сайта приходится это все дело запиливать в базу данных, но если реализовывать через зенку, то нужно в одном фаиле вести лог ссылок под граф - ну самое простое - ссылка донор - ссылка акцептор. Т.е. на одну страницу сразу заведется 150-300 записей, а во втором фаиле вести двухколоночную таблицу (ну или список пофигу) в котором будет находиться фаил задания. Берешь первую строку с удалением, проверяешь на наличие какого то своего маркера и отправляешь туда спайдера, и потом записываешь её в конец но уже с маркером ( условно со знаком +) ну и вот так потихонечку....

Реальных подходов два - можно дергать страницы через GET запрос - это быстро, но не будет блоков контента, которые подгружаются через аякс и яваскрипт, поэтому для себя я выбрал DOM.
Нужно не забыть для себя решить - будешь ли ты использовать роботс.тхт или нет
Неплохо было бы ввести свои дополнительные параметры фильтрации( самому редактировать роботс.тхт для краулера) ибо если вебмастер олень и не закрыл в Clean-params то будет печаль ахрелион одних и тех же страниц, которые реально не нужны
Нужно предусмотреть обработку rel=canonical
Нужно предусмотреть обработку абсолютных и относительных ссылок
Нужно так же чтобы робот шлялся только внутри одного сайта/саба, и не уходил по внешним ссылкам индексировать рейтинг мейл.ру)))

Ну вот как то так... развлекайтесь))))
 

alekwuy

Client
Регистрация
06.04.2013
Сообщения
1 631
Благодарностей
461
Баллы
83
а sitemap там нету?

обычно у сайта есть какая то структура
я тоже парсил 1кк страниц недавно
 

toxass

Client
Регистрация
18.03.2010
Сообщения
280
Благодарностей
12
Баллы
18
Сайтмапа нету. Есть только индекс гугла и сам сайт.
 

alekwuy

Client
Регистрация
06.04.2013
Сообщения
1 631
Благодарностей
461
Баллы
83
блеклист например
и юзать гет в 100+ потоков
 

CSS

Client
Регистрация
22.05.2010
Сообщения
1 327
Благодарностей
663
Баллы
113
Есть задача спарсить все ссылки с сайта. Сам сайт около 5 000 000 страниц. Какой алгоритм в шаблоне использовать, чтобы обойти все страницы?

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

schnaps

Client
Регистрация
07.02.2010
Сообщения
837
Благодарностей
150
Баллы
43

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)