Bau eines höflichen und schnellen Webcrawlers: Lektionen gelernt
Dennis Schubert, Ingenieur bei Mozilla und bemerkenswerter Mitwirkender an Diaspora, einem verteilten Open-Source-Sozialen Netzwerk, stellte kürzlich fest, dass 70 % der Last auf den Diaspora-Servern von schlechtartigen Bots stammten, die die LLMs einiger großer Unternehmen speisen. Die schlimmsten Übeltäter, die zusammen 40 % des gesamten Datenverkehrs ausmachten, waren OpenAI und Amazon. Dieser Artikel beschreibt die Erfahrungen des Autors beim Bau eines höflichen und schnellen Webcrawlers, einschließlich Ratenbegrenzung, Respekt vor robots.txt, Minimierung von erneuten Abrufen und effizientem Einfügen in die Warteschlange. Mit Python und gevent weist der Autor jedem Domain eine Coroutine für die Ratenbegrenzung zu und nutzt Postgres für effizientes Queue-Management und Deduplizierung. Dieses Design ermöglicht schnelles und effizientes Crawlen bei gleichzeitiger Berücksichtigung der Zielwebsites.