2010-01-17 9 views
29

solo pensé y me preguntaba si es posible rastrear toda la web (¡como los más grandes!) En un solo servidor dedicado (como Core2Duo, 8gig ram, 750gb disco 100mbps) .guía para rastrear toda la web?

Me encontré con un documento donde se hizo esto ... pero no recuerdo el título de este artículo. fue como arrastrarse por toda la web en un solo servidor dedicado utilizando algún modelo estadístico.

De todas formas, imaginar a partir de la vuelta de 10.000 direcciones URL de semillas, y haciendo rastreo exhaustivo ....

es posible?

Estoy en necesidad de rastrear la web pero limitado a un servidor dedicado. ¿Cómo puedo hacer esto? ¿Ya hay una solución de código abierto?

por ejemplo, consulte este motor de búsqueda en tiempo real. http://crawlrapidshare.com los resultados son extremadamente buenos y recién actualizados ... ¿cómo están haciendo esto?

+20

Le deseo mucha suerte en su viaje. –

+1

Curioso ¿CUÁNTO TIEMPO tardaría en rastrear incluso el 50% de la red desde una sola máquina (incluso en una tubería FAT, los núcleos reales contienen gran cantidad de RAM y espacio en la HDD). ¿Cuánto tiempo? ¿Alguna proyección? –

+3

google rastrea 4 mil millones de páginas por día y aún así no pueden rastrear toda la web. –

Respuesta

20

rastreo de la web es conceptualmente sencilla. Trata a la Web como un gráfico dirigido muy complicado. Cada página es un nodo. Cada enlace es un borde dirigido.

Puede comenzar con la suposición de que un único punto de partida bien elegido eventualmente conducirá a cualquier otro punto (eventualmente). Esto no será estrictamente cierto, pero en la práctica creo que encontrará que es en su mayoría cierto. Aún así, es probable que necesite varios (tal vez miles) de puntos de partida.

Querrá asegurarse de no recorrer la misma página dos veces (en una sola pasada). En la práctica, el recorrido durará tanto que no es más que una cuestión de cuánto tiempo debe pasar antes de regresar a un nodo en particular y también cómo detecta y trata los cambios (es decir, la segunda vez que visita una página puede haber cambiado).

El asesino será la cantidad de datos que necesita almacenar y lo que quiere hacer con una vez que lo tenga.

+3

Simplemente comience su rastreo enviando todo el diccionario a google.com;) –

+0

@cletus bellamente puesto. – Malaken

+1

upvote conceptualmente simple –

2

Apuesto a que es posible. Solo necesita tener una CPU cuántica y RAM cuántica.

En serio, un solo servidor no podría alcanzar el crecimiento de toda la web. Google usa una gran cantidad de servidores (contados en decenas, sino cientos de miles), y no puede proporcionarle una indexación inmediata.

Supongo que si está limitado a un solo servidor y necesita rastrear todo el sitio web, realmente necesita resultados de ese rastreo. En lugar de centrarse en "cómo rastrear la Web", concéntrese en "cómo extraer los datos que necesita utilizando Google". Un buen punto de partida para eso sería: Google AJAX Search API.

+0

+1 pero realmente debería ser un comentario – RCIX

+0

Mucho tiempo desde que Google eliminó todas las formas legales de automatizar y reutilizar los resultados de búsqueda a través de la API. Solo es posible ilegal y Google nunca devuelve más de 400 resultados por consulta y las formas de personalizar la búsqueda y el resultado son muy, muy, muy, muy limitadas. – Lothar

0

Suena posible, pero los dos problemas reales serán la conexión de red y el espacio en el disco duro. Hablando como alguien que no sabe casi nada sobre el rastreo de la web, comenzaría con varios terabytes de almacenamiento y me abriría camino a medida que acumulé más información y una buena conexión a Internet de banda ancha. ¡Un bolsillo profundo es imprescindible para esto!

+1

Dudo que los terabytes sean las unidades correctas cuando hablamos de rastreos web. Google procesa cerca de 20 petabytes de datos por día. Leer resumen: http://portal.acm.org/citation.cfm?doid=1327452.1327492 –

+1

Cierto, pero dudo seriamente que alguien pueda extraer petabytes incluso a través de una conexión de banda ancha ... – RCIX

+0

Peta bytes significa consultas de búsqueda y más, no solo páginas . –

0

Me pregunto si Internet debería ser más grande que 750 GB. Además, la estructura de datos diseñada para indexar la web también requiere mucho almacenamiento.

+0

Si almacena su índice de una buena manera, podrá rellenar MUCHA información en su disco duro de 750 GB. Nadie dice que el rastreador debe almacenar todos los datos de cada página web que encuentre. Por ejemplo, podría verificar si se trata de un sitio social (myface, spacebook, tweeter, lurkedin, un foro u otras páginas sin intereses). Sin embargo, si se trata de una página que contiene un código fuente, podría marcarlo con un solo bit y almacenar la información extraída en un archivo hashref'ed (para empezar). –

2

ver esto por una solución alternativa, dependiendo de lo que estaría buscando que ver con tantos datos (incluso si fuera posible): http://searchenginewatch.com/2156241

... EDIT: Además, no se olvide, la web está cambiando todo el tiempo, por lo que incluso las operaciones de rastreo de tamaño relativamente pequeño (como los sitios clasificados que agregan listados de muchas fuentes) actualizan sus rastreos en un ciclo, por ejemplo, como un ciclo de 24 horas. Es entonces cuando los propietarios de sitios web pueden o no comenzar a sentir inconvenientes por la carga que su rastreador coloca en sus servidores. Y luego, dependiendo de cómo use el contenido rastreado, debe pensar en ello porque necesita enseñar a sus sistemas a reconocer si los resultados del rastreo de ayer son diferentes a los de hoy, etc. se vuelve muy "borroso". ", sin mencionar la potencia informática necesaria.

7

Creo que el papel que se refiere es "IRLbot: expansión de 6 mil millones de páginas y más allá". Este fue un solo rastreador web del servidor escrito por estudiantes de Texas A & M.

Dejando a un lado los problemas de ancho de banda, espacio en disco, arrastrándose estrategias, robots.txt/cortesía - la pregunta principal que tengo es "¿por qué?" El rastreo de toda la web significa que está utilizando recursos compartidos de muchos millones de servidores web. Actualmente, la mayoría de los webmasters permiten a los bots rastrearlos, siempre que jueguen bien y obedezcan las reglas implícitas y explícitas para el rastreo educado.

Pero cada bot de alto volumen que martillea un sitio sin beneficio obvio da como resultado unos pocos sitios más que cierran la puerta a todo, además de los grandes (Google, Yahoo, Bing, etc.). Entonces, realmente quieres hacerte la pregunta por qué antes de pasar demasiado tiempo sobre cómo.

Suponiendo que realmente necesita rastrear una gran parte de la web en un solo servidor, entonces necesita obtener un tubo más grueso, mucho más espacio de almacenamiento (por ejemplo, suponer 2K de texto comprimido por página, 2 TB para 1B páginas), mucha más memoria RAM, al menos 4 núcleos reales, etc. El papel de IRLbot sería su mejor guía. También es posible que desee consultar el proyecto crawler-commons para encontrar fragmentos reutilizables de código Java.

Y una última palabra de precaución. Es fácil que un error inocente desencadene problemas para un sitio web, momento en el que estará en el extremo receptor de una llama de webmaster enojado. Así que asegúrese de que usted tiene la piel gruesa :)

3

filtro Bloom para detectar dónde ha estado.

Habrá falsos positivos, pero se puede evitar esto mediante la implementación de múltiples filtros Bloom y la rotación de los cuales filtro Bloom y se agrega a la creación de un filtro de longitud impresionante.

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

4

Lo sentimos revivir este hilo después de tanto tiempo, pero sólo quería señalar que si sólo estás en necesidad de un muy gran conjunto de datos web, hay una manera mucho más fácil de conseguirlo que a intente rastrear toda la web usted mismo con un solo servidor: simplemente descargue la base de datos de rastreo gratuita proporcionada por el Common Crawl project. En sus palabras:

Creamos y mantenemos un repositorio abierto de datos de rastreo web al que cualquier persona puede acceder y analizar.

A partir de hoy, su base de datos tiene un tamaño de petabytes y contiene miles de millones de páginas (trillones de enlaces). Simplemente descárguelo y realice el análisis que le interese allí.

+0

Sí, está en Amazon EC2 y eso lo hace completamente inútil dado los precios increíbles para procesar el rastreo común. Es mucho más barato hacerlo tú mismo. También es viejo y no tiene deduplicación y contiene una mezcla gigante de todos los datos posibles. – Lothar

Cuestiones relacionadas