konto usunięte

Temat: wydajny i skalowalny crawler - wybor technologii...

Witam,

jakie darmowe technologie opensource wybralibyscie do realizacji wydajnego i skalowalnego crawlera ?

Jesli chodzi o jezyk realizacji elementow serwerowych zastanawiam sie nad C/C++, ale nie widze problemu byscie to kwestionowali. Zapraszam do dyskusji.Tomasz Grzechowski edytował(a) ten post dnia 19.12.09 o godzinie 11:08

konto usunięte

Temat: wydajny i skalowalny crawler - wybor technologii...

Skanowanie internetu w jakimś sieciowym języku (PHP, Python) + ew. indeksowanie w C/C++ (zacząłbym od rozwiązania skryptowego).

Jest kilka książek na ten temat, np. "Webbots, spiders and screen scrapers"
Radek Baczyński

Radek Baczyński GoldenLine.pl

Temat: wydajny i skalowalny crawler - wybor technologii...

ruby, anemone http://github.com/chriskite/anemone/

puszczony jako demony, bardzo prosty szybki i wdzięczny. Ale zależy co crawlujesz, bo ja (na razie) jeden serwis. Dane lecą do mysql, a indeksem wyszukiwarki będzie sphinx.
Marcin P.

Marcin P. Zakamuflowany
programista

Temat: wydajny i skalowalny crawler - wybor technologii...

PHP, ale można też w asamblerze.

konto usunięte

Temat: wydajny i skalowalny crawler - wybor technologii...

Tomasz Grzechowski:
...
jakie darmowe technologie opensource wybralibyscie do realizacji wydajnego i skalowalnego crawlera ?

Sądzę, że pytanie nie jest dobrze zadane.

Jeśli masz na myśli tylko crawlera to raczej kierowałbym się w stronę PHP/CGI. W procesie "czytania strony" i tak 99% pracy to będzie proces transferu danych i/lub oczekiwania na odpowiedź z serwera.

Jak już pobierzesz i zapisze - dalsza obróbka może odbywać się w "czymkolwiek". Sądzę też, że będziesz musiał ustalić poszczególne procesy analizy zgromadzonych danych (nim zaczniesz z nich korzystać/prezentować je) i dopiero na tym poziomie (wiedząc jakie to będą procesy) wybierz język.

Nie sądzę byś budował Google - więc spokojnie jesteś w stanie zrealizować to w PHP / CGI bez "sięgania po assembler" czy też C/C++Robert B. edytował(a) ten post dnia 19.12.09 o godzinie 23:07
Mariusz Gil

Mariusz Gil Architekt, Tech-Lead

Temat: wydajny i skalowalny crawler - wybor technologii...

Radek Baczyński:
ruby, anemone http://github.com/chriskite/anemone/

Fakt, anemone to bardzo fajne narzędzie, korzystałem z niego w jednym z projektów. Proste i szybkie w użyciu.

Z ciekawych rozwiązań jest jeszcze Nutch (http://lucene.apache.org/nutch/index.html), tylko to akurat pod Javę bardziej, więc może ci nie podejść do końca. Natomiast możliwości ma dość spore.Mariusz Gil edytował(a) ten post dnia 20.12.09 o godzinie 00:46
Wojciech Sznapka

Wojciech Sznapka CTO @ STS Zakłady
Bukmacherskie

Temat: wydajny i skalowalny crawler - wybor technologii...

jakbym miał to robić od podstaw, to w pythonie.

konto usunięte

Temat: wydajny i skalowalny crawler - wybor technologii...

Kiedyś pisaliśmy coś takiego w pythonie, wydajność np: dla "przerobienia" Wykop.pl - ok. 100 podstron na sekundę.

Dużo zależy od tego, czy ma to być coś dedykowanego pod konkretny serwis, czy uniwersalny crawler.
Sebastian Nowak

Sebastian Nowak Tworzę poezję dla
Bezdusznych Maszyn

Temat: wydajny i skalowalny crawler - wybor technologii...

a ja polece: hpricot => http://github.com/whymirror/hpricot
jak dla mnie lepsze od nokogiri

pozdrawiam

konto usunięte

Temat: wydajny i skalowalny crawler - wybor technologii...

Artur Smolarek:
Dużo zależy od tego, czy ma to być coś dedykowanego pod konkretny serwis, czy uniwersalny crawler.

Bardzo uniwersalny i na ile to mozliwe wydajny.

Wyciagam z netu informacje o najbardziej skalowalnych architekturach :-)Tomasz Grzechowski edytował(a) ten post dnia 22.12.09 o godzinie 18:01

konto usunięte

Temat: wydajny i skalowalny crawler - wybor technologii...

Piotr Likus:
Jest kilka książek na ten temat, np. "Webbots, spiders and screen scrapers"

Dzieki za link. Spis tresci jest jak zwykle pouczajacy :-)

http://www.schrenk.com/nostarch/webbots/DSP_inside.php

konto usunięte

Temat: wydajny i skalowalny crawler - wybor technologii...

Robert B.:
Sądzę, że pytanie nie jest dobrze zadane.

wydaje mi sie, ze nie ma co tu uscislac : skalowalny + wydajny to wystarczajacy opis, choc ogolny, kilka osob dobrze to zrozumialo, kilka osob, nie zastanawialo sie czego dotycza te slowa, szerszy opis niewiele by zmienil
Jeśli masz na myśli tylko crawlera to raczej kierowałbym się w stronę PHP/CGI.

niczego nie wykluczam
W procesie "czytania strony" i tak 99% pracy to będzie proces transferu danych i/lub oczekiwania na odpowiedź z serwera.

tu juz bardziej rzecz w tym ile tych procesow/watkow na raz bedzie
Jak już pobierzesz i zapisze - dalsza obróbka może odbywać się w "czymkolwiek". Sądzę też, że będziesz musiał ustalić poszczególne procesy analizy zgromadzonych danych (nim zaczniesz z nich korzystać/prezentować je) i dopiero na tym poziomie (wiedząc jakie to będą procesy) wybierz język.

Mysle, ze crawler jest tutaj niezaleznym komponentem i o ile jego mozliwosci gromadzenia danych z internetu beda podyktowane wymaganiami odnosnie calego procesu realizowanego przez system, o tyle jego architektura ma byc zamknieta dla reszty swiata (innych podsystemow) i nie musi byc przez nie zrozumiala.
Nie sądzę byś budował Google - więc spokojnie jesteś w stanie zrealizować to w PHP / CGI bez "sięgania po assembler" czy też C/C++

Assembler jest tutaj zupelnie nie na miejscu, jego zastosowanie to pisanie sterownikow i jeszcze ewentualnie dzis optymalizowanie elementow obliczen w przypadku bardzo wymagajacych rozwiazan. Pewnie znalazloby sie jeszcze kilka zastosowan, ale nie tutaj oczywiscie.

---

Nie wiem do czego swoj crawler wykorzystuje google (poza wyszukiwarka oczywiscie) i co jeszcze tam po cichu buduje, wiec nie moge sie odniesc.

A skoro google sie nie chwali to i mnie nie wypada :-).Tomasz Grzechowski edytował(a) ten post dnia 22.12.09 o godzinie 18:36

konto usunięte

Temat: wydajny i skalowalny crawler - wybor technologii...

Tomasz Grzechowski:
...

Odniosłem się do wielu rzeczy - gdyż jest wiele niewiadomych. Można było użyć jednego zdania do opisania wszystkiego: sposób realizacji problemu będzie zależny od przeznaczenia narzędzia - można to narzędzie napisać we wszystkim (też w asemblerze choć nie do tego on jest) uzależniając to od czynników, o których my (czytelnicy) nigdy się nie dowiemy.

Wcale też nie uważam by była konieczność pisania w C/C++ gdyż jak to wyżej napisałem sam crawler 99% swojego czasy będzie marnował na oczekiwanie na odpowiedź z serwera+transfer danych a ten proces nie jest zależny od języka w którym to się napisało.

[edyta]
(piszę to jako praktyk, który kilka narzędzi/crawlerów w PHP już napisał)Robert B. edytował(a) ten post dnia 22.12.09 o godzinie 19:15

Następna dyskusja:

Problem z opensource :(




Wyślij zaproszenie do