2016-05-17 23 views
19

Od jakiegoś czasu używamy od Scrapyd service. Zapewnia ładną otokę wokół projektu scrapy i jego pająków pozwalających kontrolować pająki za pośrednictwem interfejsu API HTTP:ScrapyRT vs Scrapyd

Scrapyd to usługa do obsługi pająków Scrapy.

Umożliwia wdrażanie projektów Scrapy i kontrolowanie ich pająków przy użyciu interfejsu API JSON protokołu HTTP.

Ale ostatnio, zauważyłem kolejną „świeże” pakietu - ScrapyRT, że zgodnie z opisem projektu, brzmi bardzo obiecująco i podobne do Scrapyd:

serwera HTTP, który zapewnia interfejs API do planowania Złomuj pająki i prośby z pająkami.

Czy ten pakiet jest alternatywą dla Scrapyd? Jeśli tak, jaka jest różnica między tymi dwoma?

Odpowiedz

14

Nie mają zbyt wiele wspólnego. Jak już zauważyłeś, musisz rozmieścić swoje pająki w złomie, a następnie zaplanować indeksowanie. scrapyd to samodzielna usługa działająca na serwerze, na której możesz wdrożyć i uruchomić każdy projekt/pająk, który Ci się podoba.

Z ScrapyRT wybierasz jeden ze swoich projektów, a następnie cd do tego katalogu. Następnie uruchomisz np. scrapyrt i rozpoczyna się indeksowanie dla pająków w tym projekcie za pośrednictwem prostego (i bardzo podobnego do scrapydowego) interfejsu REST API. Następnie odzyskasz zindeksowane elementy w ramach odpowiedzi JSON.

To bardzo fajny pomysł i wygląda szybko, szczupły i dobrze zdefiniowany. Z kolei Scrapyd jest bardziej dojrzały i bardziej ogólny.

Oto kilka kluczowych różnic:

  • Scrapyd obsługuje wiele wersji pająków i różnych projektów. O ile widzę, jeśli chcesz uruchomić dwa różne projekty (lub wersje) z ScrapyRT, będziesz musiał użyć różnych portów dla każdego.
  • Scrapyd dostarcza infrastrukturę do przechowywania elementów na serwerze, a ScrapyRT odsyła je do odpowiedzi, co oznacza dla mnie, że powinny być rzędu kilku MB (zamiast potencjalnie GB). Podobnie, sposób logowanie jest przetwarzane w scrapydach jest bardziej ogólne w porównaniu do ScrapyRT.
  • Scrapyd (potencjalnie trwały) kolejkuje zlecenia i zapewnia kontrolę nad liczbą procesów Scrapy, które działają równolegle. ScrapyRT robi coś prostego, co, o ile mogę powiedzieć, to rozpoczęcie indeksowania dla każdego żądania zaraz po otrzymaniu żądania. Zablokowanie kodu w jednym z pająków również zablokuje innych.
  • ScrapyRT wymaga argumentu url, który z tego, co wiem, przesłania każdą logikę zależną od start_urls.

Powiedziałbym, że ScrapyRT i Scrapyd bardzo sprytnie nie zachodzą na siebie w tym momencie. Oczywiście nigdy nie wiadomo, co przyniesie przyszłość.

+0

Teraz widzę różnice! Dzięki! I jeszcze raz dziękuję za niesamowitą książkę, Dimitrios! – alecxe

+0

Bardzo mile widziane, wielkie dzięki, @alecxe! I wielkie dzięki za wspaniałe pytanie! :) – neverlastn