web crawler - metacrawler - ¿Guía sobre el rastreo de toda la web?
web crawler python (8)
Acabo de tener este pensamiento y me preguntaba si es posible rastrear toda la web (¡igual que los grandes!) en un único servidor dedicado (como Core2Duo, 8gig ram, disco de 750 gb, 100 mbps).
Me he encontrado con un papel donde se hizo esto ... pero no puedo recordar el título de este documento. fue como tratar de rastrear toda la web en un único servidor dedicado utilizando algún modelo estadístico.
De todos modos, imagine que comienza con solo alrededor de 10,000 URL de semillas y que realiza un rastreo exhaustivo ...
Es posible ?
Necesito rastrear la web, pero estoy limitado a un servidor dedicado. ¿Cómo puedo hacer esto? ¿Ya existe una solución de código abierto?
Por ejemplo, ver 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?
Apuesto a que es posible. Solo necesitas tener una CPU cuántica y una RAM cuántica.
En serio, un solo servidor no podría alcanzar el crecimiento de toda la web. Google utiliza una gran cantidad de servidores (que se cuentan en decenas, si no en cientos de miles), y no puede proporcionarle una indexación inmediata.
Supongo que si está limitado a un solo servidor y necesita rastrear toda la web, realmente necesita los resultados de ese rastreo. En lugar de centrarse en "cómo rastrear la web", céntrese en "cómo extraer los datos que necesita usando Google". Un buen punto de partida para eso sería: Google AJAX Search API .
Creo que el documento al que te refieres es "IRLbot: Escalado a 6 mil millones de páginas y más". Este fue un rastreador web de un solo servidor escrito por estudiantes de Texas A&M.
Dejando a un lado los problemas de ancho de banda, espacio en disco, estrategias de rastreo, robots.txt / cortesía, la pregunta principal que tengo es "¿por qué?" Rastrear toda la web significa que está utilizando recursos compartidos de muchos millones de servidores web. Actualmente, la mayoría de los webmasters permiten que los robots los rastreen, siempre que jueguen bien y obedezcan reglas implícitas y explícitas para el rastreo educado.
Pero cada bot de gran volumen que martilla un sitio sin beneficios evidentes resulta en unos pocos sitios más que cierran la puerta a todo, además de a los grandes (Google, Yahoo, Bing, etc.). Así que realmente quieres hacer la pregunta de por qué antes de gastar demasiado tiempo en cómo.
Suponiendo que realmente necesita rastrear una gran parte de la web en un solo servidor, entonces necesitaría tener un canal más grueso, mucho más espacio de almacenamiento (por ejemplo, suponga 2K de texto comprimido por página, por lo que 2 TB para páginas de 1B), mucho más RAM, al menos 4 núcleos reales, etc. El papel IRLbot sería su mejor guía. También es posible que desee consultar el proyecto de recursos de rastreo para obtener fragmentos reutilizables de código Java.
Y una última palabra de precaución. Es fácil que un error inocente provoque problemas para un sitio web, momento en el que estará en el extremo receptor de una llama de webmaster enojado. Así que asegúrate de que tienes la piel gruesa :)
Filtro de floración para detectar dónde has estado.
Habrá falsos positivos, pero puede solucionar esto implementando múltiples filtros Bloom y rotando a qué filtro se agrega y creando un filtro de longitud impresionante.
Me pregunto que toda Internet debería tener más de 750 GB. Además, la estructura de datos diseñada para indexar la web también requiere una gran cantidad de almacenamiento.
Parece 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 acerca del rastreo web, comencé con varios terabytes de almacenamiento y trabajé a medida que acumulé más información y una buena conexión a Internet de banda ancha. Un bolsillo profundo es una necesidad para esto!
Rastrear la web es conceptualmente simple. Tratar la web como un gráfico dirigido muy complicado. Cada página es un nodo. Cada enlace es un borde dirigido.
Podría comenzar asumiendo que un punto de partida bien elegido solo llevará eventualmente a cualquier otro punto (eventualmente). Esto no será estrictamente cierto, pero en la práctica creo que encontrará que es mayormente cierto. Todavía es probable que necesites múltiples puntos de partida (quizás miles).
Usted querrá asegurarse de no atravesar la misma página dos veces (dentro de un solo recorrido). En la práctica, el recorrido tomará tanto tiempo que es simplemente una cuestión de cuánto tiempo pasará antes de volver a un nodo en particular y también de cómo detectar y tratar los cambios (es decir, la segunda vez que visite una página, puede haber cambiado).
El asesino será la cantidad de datos que necesita almacenar y lo que desea hacer con ellos una vez que los tenga.
Vea esto para una solución alternativa, dependiendo de lo que desea hacer con tanta información (incluso si fuera posible): http://searchenginewatch.com/2156241
... EDITAR: 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 de clasificados que agregan listados de muchas fuentes) actualizan sus rastreos en un ciclo, por ejemplo, como un 24 Ciclo de cuatro horas. Ahí es cuando los propietarios de sitios web pueden o no comenzar a tener inconvenientes por la carga que el rastreador coloca en sus servidores. Y luego, dependiendo de cómo use el contenido rastreado, tendrá que pensar en la dedicación porque debe enseñar a sus sistemas a reconocer si los resultados del rastreo de ayer son diferentes de los de hoy, etc. ", por no mencionar la potencia informática necesaria.
Lamento revivir este hilo después de tanto tiempo, pero solo quería señalar que si solo necesita un conjunto de datos web extremadamente grande, hay una manera mucho más fácil de obtener que intentar rastrear toda la web con una sola. servidor: simplemente descargue la base de datos de rastreo gratuita proporcionada por el proyecto Common Crawl . En sus palabras:
Construimos y mantenemos un repositorio abierto de datos de rastreo web al que cualquiera 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 (billones de enlaces). Solo descárgalo y realiza cualquier análisis que te interese.