Подтвердить что ты не робот

Руководство по ползанию всей сети?

У меня просто была эта мысль, и мне было интересно, можно ли сканировать всю сеть (точно так же, как и большие мальчики!) на одном выделенном сервере (например, Core2Duo, 8gig ram, 750gb disk 100mbps) .

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

В любом случае, представьте, что вы начинаете с примерно 10 000 URL-адресов семян и выполняете исчерпывающий обход.

Возможно ли это?

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

например, см. эту поисковую систему в режиме реального времени. http://crawlrapidshare.com результаты exteremely хорошие и свежее обновление.... как они это делают?

4b9b3361

Ответ 1

Обход веб-сайта концептуально прост. Относитесь к Web как к очень сложному ориентированному графу. Каждая страница - node. Каждая ссылка является направленным ребром.

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

Вы хотите, чтобы вы не проходили одну и ту же страницу дважды (в пределах одного обхода). На практике обход займет так много времени, что это всего лишь вопрос о том, как долго вы вернетесь к определенному node, а также о том, как вы обнаруживаете и имеете дело с изменениями (это означает, что во второй раз, когда вы приходите на страницу, возможно, она изменилась).

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

Ответ 2

Я считаю, что документ, на который вы ссылаетесь, это "IRLbot: масштабирование до 6 миллиардов страниц и за его пределами". Это был единственный веб-поисковый сервер, написанный студентами Texas A & M.

Оставляя в стороне проблемы с пропускной способностью, дисковым пространством, стратегиями сканирования, robots.txt/вежливость - главный вопрос, который у меня есть, - почему? Обход всей сети означает, что вы используете общие ресурсы со многих миллионов веб-серверов. В настоящее время большинство веб-мастеров позволяют ботам сканировать их, если они играют хорошо и подчиняются неявным и явным правилам для вежливого сканирования.

Но каждый крупный бот, который забивает сайт без очевидной выгоды, приводит к еще нескольким сайтам, закрывающим дверь ко всему, кроме больших мальчиков (Google, Yahoo, Bing и т.д.). Поэтому вы действительно хотите задать вопрос, почему бы не тратить слишком много времени на то, как.

Предполагая, что вам действительно нужно сканировать большую часть веб-сайта на одном сервере, тогда вам нужно будет получить более толстый канал, намного больше места для хранения (например, предположите, что 2K сжатый текст на странице, так что 2TB для 1B страниц), больше ОЗУ, по крайней мере 4 реальных ядра и т.д. Бумага IRLbot станет вашим лучшим руководством. Вы также можете посмотреть проект crawler-commons для многократных фрагментов кода Java.

И последнее слово осторожности. Легко для невинной ошибки спровоцировать проблемы для веб-сайта, и в это время вы окажетесь на прилавке гневного плаката для веб-мастеров. Поэтому убедитесь, что у вас толстая кожа:)

Ответ 3

Извините, что возобновил этот поток после столь долгого времени, но я просто хотел указать, что если вам просто нужен очень большой набор данных в Интернете, есть гораздо более простой способ получить его, чем пытаться самостоятельно сканировать весь веб-сайт с единственным сервером: просто скачайте бесплатную базу данных обхода, предоставленную проектом Common Crawl. По их словам:

Мы создаем и поддерживаем открытый репозиторий данных обхода в Интернете, доступ к которым может быть доступен и проанализирован кем-либо.

На сегодняшний день их база данных имеет размер петабайт и содержит миллиарды страниц (триллионы ссылок). Просто загрузите его и выполните любой анализ, который вам интересен.

Ответ 4

Фильтр Bloom для обнаружения того, где вы были.

Будут ложные срабатывания, но вы можете обойти это, внедряя несколько фильтров Bloom и поворачивая, к которым добавляется Bloom Filter и создающий фильтр впечатляющей длины.

http://en.wikipedia.org/wiki/Bloom_filter

Ответ 5

Держу пари, это возможно. Вам нужно только иметь квантовый процессор и квантовую память.

Серьезно, что один сервер не сможет догнать рост всей сети. Google использует огромную ферму серверов (насчитывается десятки, если не сотни тысяч), и она не может предоставить вам немедленную индексацию.

Я думаю, если вы ограничены одним сервером и нуждаетесь в обходе всего веб-сайта, вам действительно нужны результаты этого обхода. Вместо того, чтобы сосредоточиться на том, "как сканировать Интернет", сосредоточьтесь на "извлечении данных, которые вам нужны с помощью Google". Хорошей отправной точкой для этого было бы следующее: Google AJAX Search API.

Ответ 6

Посмотрите на альтернативное решение, в зависимости от того, что вы хотели бы делать с такими большими данными (даже если это было возможно): http://searchenginewatch.com/2156241

... EDIT: Кроме того, не забывайте, что сеть все время меняется, поэтому даже относительно небольшие операции сканирования (например, сайты объявлений, которые объединяют списки из большого количества источников) обновляют свои обходы по циклу, скажем, как 24-часовой цикл. То, что, когда владельцы веб-сайтов могут или не могут стать неудобными из-за нагрузки, которую ваш искатель кладет на свои серверы. И тогда, в зависимости от того, как вы используете обходной контент, у вас есть обман, чтобы думать, потому что вам нужно научить ваши системы узнавать, отличаются ли результаты сканирования от вчерашнего дня и т.д.... становится очень "нечетким" ", не говоря уже о требуемой вычислительной мощности.

Ответ 7

Звуки возможны, но двумя реальными проблемами будут сетевое подключение и пространство на жестком диске. Говоря как кто-то, кто почти ничего не знает о веб-сканировании, я бы начал с нескольких терабайт памяти и работал на моем пути, поскольку я собираю больше информации и хорошее широкополосное подключение к Интернету. Для этого нужен глубокий карман!

Ответ 8

Мне просто интересно, что весь интернет должен быть больше 750 ГБ. Более того, структура данных, предназначенная для индексирования сети, также занимает много места.