2013-07-26 15 views
8

Oba programy pośredniczące mogą przetwarzać żądania i odpowiedzi. Ale jaka jest różnica?Jaka jest różnica między oprogramowaniem pośredniczącym programu Scrapy a oprogramowaniem pośredniczącym do pobierania?

+4

@MitchWheat: Może wyglądać banalnie, ale to dobre pytanie. – Blender

+0

Wygląda na to, że nie ma żadnej treści programistycznej: wygląda jak pytanie do wyszukiwarki. –

+1

@MitchWheat: Rozróżnienie między nimi nie jest oczywiste i nie jest wyjaśnione w dokumentacji. Przesyłanie głosów w dół i zamykanie głosów nie przydaje się, jeśli nie rozumiesz związanych z nimi ram. – Blender

Odpowiedz

10

Choć mają niemal identyczne interfejsy, służą różnym celom: middleware

  • Downloader modyfikacji żądania i odpowiedzi lub generowania żądania w odpowiedzi na odpowiedzi. Nie mają bezpośredniej interakcji z pająkami. Niektóre przykłady to middleware, które implementują pliki cookie, buforowanie, proxy, przekierowania, ustawianie nagłówków programów użytkownika itp. Po prostu dodają funkcjonalność do systemu pobierającego.

  • Środowisko pająk modyfikuje rzeczy, które przechodzą i wychodzą z pająków, takie jak żądania, elementy, wyjątki i start_requests. Udostępniają podstawowe funkcje oprogramowania pośredniczącego downloader, ale nie mogą generować żądań w odpowiedzi na odpowiedzi. Stoją pomiędzy pająkami i downloaderem. Jednym z przykładów jest filtrowanie odpowiedzi ze złymi kodami statusu HTTP.

Niektóre middleware może funkcjonować zarówno jako middleware downloader lub pośredniej pająka, ale są często banalne i będzie zmuszony do jednej lub drugiej kategorii po dodaniu bardziej złożonych funkcji.

+0

Dzięki za rozwiązanie, które bardzo mi pomaga. Czy możesz tutaj wyjaśnić rolę DOWNLOADER_MIDDLEWARES. @ Blender –