Scrapy
3 minuty czytania
Scrapy to framework open source napisany w języku Python, służący do przetwarzania danych z witryn internetowych. Jest to narzędzie przeznaczone dla web scraping, czyli automatyzowanego pobierania danych z witryn internetowych.
Często programując korzystamy z dostępnych API, które dostarczają nam potrzebne dane do naszej aplikacji. Przykładowo budując aplikację, która będzie nam ukazywać aktualną pogodę, musimy skądś te dane wziąć i najczęściej korzystamy z dostępnych API na rynku, ale co w przypadku kiedy nie znajdziemy interesującego nas API. Właśnie w takim przypadku warto rozważyć, scrapowanie stron. W tym artykule przedstawię właśnie narzędzie, które pomoże nam w scrapowaniu stron.

Czym jest scrapowanie stron?
Scrapowanie stron jest to nic innego niż wyciąganie jakiejś zawartości strony i zapisywanie tych danych w celu np. wykorzystania ich w swojej aplikacji. Scrapowanie stron wykorzystują takie serwisy jak np. ceneo, google, czy też portale zbierające oferty pracy z innych portali. Pamiętajmy, że to co robimy później z takimi danymi może być czasami nielegalne.
Co to jest Scrapy?
Scrapy jest frameworkiem do języka Python i jest on najpopularniejszym i najbardziej rozbudowanym narzędziem do scrapowania stron internetowych. Scrapy dostarcza wszystkie niezbędne narzędzia potrzebne do efektywnego wydobywania danych ze stron, przetwarzania ich i przechowywania w preferowanej strukturze i formacie. Scrapy jest łatwy do użycia, posiada obsługę żądań asynchronicznych, a ponadto automatycznie dostosowuje prędkość indeksowania za pomocą mechanizmu “Auto-throttling”.
Scrapy Spider
Najważniejszą częścią w Scrapy są klasy Spider. Scrapy używa ich do zbierania informacji ze strony internetowej. Definiują one w jaki sposób nasz Spider ma wydobywać dane ze strony.
Przykładowa klasa Spidera, która wydobywa cytaty ze strony.
import scrapy
class QuotesSpider(scrapy.Spider):
name = 'quotes'
start_urls = [
'https://quotes.toscrape.com/tag/humor/',
]
def parse(self, response):
for quote in response.css('div.quote'):
yield {
'author': quote.xpath('span/small/text()').get(),
'text': quote.css('span.text::text').get(),
}
next_page = response.css('li.next a::attr("href")').get()
if next_page is not None:
yield response.follow(next_page, self.parse)
Taki kod zapisujemy do pliku “quotes_spider.py” i odpalamy naszego bota do scrapowania komendą:
scrapy runspider quotes_spider.py -o quotes.jl
Kiedy nasz bot skończy swoją pracę powinniśmy otrzymać plik “quotes.jl”, który będzie zawierać listę cytatów zapisanych w formacie json.
{"author": "Jane Austen", "text": "\u201cThe person, be it gentleman or lady, who has not pleasure in a good novel, must be intolerably stupid.\u201d"}
{"author": "Steve Martin", "text": "\u201cA day without sunshine is like, you know, night.\u201d"}
{"author": "Garrison Keillor", "text": "\u201cAnyone who thinks sitting in church can make you a Christian must also think that sitting in a garage can make you a car.\u201d"}
...
Parse – jak przetwarzać dane?
Scrapy oferuje elastyczne metody przetwarzania danych pobranych z witryn internetowych. Kluczowym elementem tego procesu jest metoda parse, która analizuje odpowiedź zwróconą przez serwer i pozwala na wydobycie interesujących informacji. Scrapy automatycznie obsługuje żądania HTTP i przekazuje odpowiedź do tej metody, gdzie można ją przetwarzać według własnych potrzeb. Metoda parse pozwala na nawigowanie po strukturze strony oraz wybieranie konkretnych elementów za pomocą narzędzi takich jak XPath czy CSS Selectors. Możliwe jest także generowanie kolejnych żądań do innych podstron oraz przechowywanie danych w formatach takich jak JSON czy CSV. Dzięki temu Scrapy jest potężnym narzędziem do scrapowania i automatycznej ekstrakcji informacji z dużych zbiorów danych.
Zarządzanie sesjami i cookies
Podczas scrapowania stron internetowych często konieczne jest zarządzanie sesjami i plikami cookies, które pozwalają na utrzymanie stanu użytkownika. Wiele stron wymaga autoryzacji lub śledzi aktywność użytkownika za pomocą plików cookie, dlatego prawidłowa ich obsługa w Scrapy jest kluczowa.
Scrapy automatycznie przechowuje i przesyła pliki cookie dla każdej domeny, co ułatwia scrapowanie stron, które wymagają zalogowania lub utrzymania sesji. Możliwe jest także ręczne zarządzanie plikami cookie poprzez modyfikowanie nagłówków żądań, co daje większą kontrolę nad interakcją ze stroną. W bardziej zaawansowanych przypadkach można korzystać z pośredników (middleware), aby dostosować zachowanie frameworka do specyficznych wymagań serwera docelowego.
SPRAWDŹ SWOJĄ WIEDZE Z TEMATU scrapy
Pytanie
1/5
Scrapy i XPath – wydobywanie danych ze stron
XPath to jedno z najpotężniejszych narzędzi do nawigacji po strukturze stron HTML i XML. W Scrapy można go wykorzystać do precyzyjnego wydobywania danych, takich jak teksty, linki, obrazy czy atrybuty elementów. XPath pozwala na poruszanie się po drzewie DOM strony internetowej i selektywne wybieranie tylko tych fragmentów kodu, które są istotne dla analizy.
Dzięki XPath możliwe jest filtrowanie elementów na podstawie ich atrybutów, pozycji w strukturze dokumentu lub zawartości tekstowej. To szczególnie przydatne przy pracy ze stronami o skomplikowanej budowie, gdzie tradycyjne selektory CSS mogą nie być wystarczająco precyzyjne. W połączeniu z Scrapy, XPath pozwala na efektywne pobieranie danych z dynamicznych i statycznych stron internetowych, co czyni go niezwykle przydatnym narzędziem w procesie web scrapingu.
Nasza oferta
Web development
Dowiedz się więcejMobile development
Dowiedz się więcejE-commerce
Dowiedz się więcejProjektowanie UX/UI
Dowiedz się więcejOutsourcing
Dowiedz się więcejPowiązane artykuły
Web scraping - co to jest i jak działa?
23 maj 2023
Web scraping to technika pozyskiwania danych z stron internetowych. Polega na przeszukiwaniu kodu HTML i wyodrębnieniu żądanych informacji. Najczęściej stosuje się ją w celach badawczych lub biznesowych. Istnieją specjalne narzędzia ułatwiające tę pracę, ale proces może być też wykonany ręcznie.

Jak Uizard zmienia sposób tworzenia aplikacji? Przegląd funkcji i możliwości
26 lis 2025
Tworzenie aplikacji jeszcze nigdy nie było tak szybkie i intuicyjne jak dziś, a jednym z narzędzi, które najbardziej zmienia zasady gry, jest Uizard. Dzięki zaawansowanej sztucznej inteligencji platforma potrafi w kilka chwil zamienić pomysł w działający prototyp, eliminując wiele żmudnych etapów tradycyjnego projektowania. Uizard otwiera drzwi zarówno dla początkujących twórców, jak i profesjonalistów, którzy chcą przyspieszyć proces koncepcyjny.
Composable CMS – przyszłość zarządzania treścią w erze omnichannel
25 lis 2025
Cyfrowy krajobraz zmienia się szybciej niż kiedykolwiek, a marki muszą dostosowywać swoje systemy do rosnącej liczby kanałów i dynamicznych oczekiwań użytkowników. W tym kontekście tradycyjne, monolityczne CMS-y przestają wystarczać, ograniczając elastyczność i tempo wdrażania nowych rozwiązań. Coraz więcej organizacji zwraca się więc w stronę podejścia composable, które umożliwia tworzenie skalowalnych, modułowych ekosystemów treści.
Claude Code – czym jest i jak działa?
24 lis 2025
Claude Code to jedno z narzędzi opartych na sztucznej inteligencji, zaprojektowane specjalnie z myślą o programistach. Pozwala nie tylko generować kod, ale także analizować, refaktoryzować i usprawniać całe projekty w oparciu o kontekst dostarczony przez użytkownika. Dzięki swojej inteligencji i zrozumieniu struktury aplikacji staje się wszechstronnym asystentem, który realnie przyspiesza pracę nad oprogramowaniem.
Eleventy (11ty): lekki i szybki generator stron statycznych
23 lis 2025
Eleventy (11ty) to lekki i niezwykle elastyczny generator stron statycznych, który szybko zdobywa popularność wśród twórców ceniących prostotę i pełną kontrolę nad projektem. W świecie coraz bardziej rozbudowanych frameworków 11ty wyróżnia się minimalistycznym podejściem, oferując jednocześnie dużą swobodę w wyborze narzędzi i sposób pracy. Dzięki szybkim buildom, wsparciu dla wielu formatów danych i możliwości łączenia różnych języków templatingu, świetnie sprawdza się zarówno w prostych blogach, jak i większych serwisach.
Content Refreshing: Jak odświeżenie treści podnosi ruch nawet bez nowych publikacji?
22 lis 2025
Odświeżanie treści to jeden z najbardziej niedocenianych sposobów na zwiększenie ruchu organicznego, mimo że nie wymaga tworzenia nowych artykułów. W dobie rosnącej konkurencji i częstych zmian algorytmów Google aktualność contentu staje się kluczowa dla utrzymania widoczności. Wiele firm wciąż skupia się na publikowaniu nowych materiałów, podczas gdy prawdziwy potencjał tkwi w tym, co już znajduje się na ich blogu.
Co to jest Marketing Automation? Definicja, przykłady, zastosowania
21 lis 2025
Marketing automation to jedno z kluczowych narzędzi nowoczesnego marketingu, które pozwala firmom skuteczniej docierać do klientów i automatyzować powtarzalne procesy. Dzięki niemu możliwe jest personalizowanie komunikacji na dużą skalę oraz tworzenie inteligentnych kampanii reagujących na zachowania odbiorców w czasie rzeczywistym. Technologia ta łączy dane, automatyzację i analitykę, wspierając zarówno marketing, jak i sprzedaż.
Zobacz wszystkie artykuły