Scrapy
2 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.
Ostatnie oferty pracy
Brak ofert pracy
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"}
...
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
Entity Object: Podstawa programowania obiektowego
29 kwi 2024
Entity Object odgrywa kluczową rolę w programowaniu obiektowym. Prezentuje on jednak znacznie więcej niż tylko zwiastun interakcji między obiektami - jest elementem, który ułatwia zrozumienie przetwarzania danych i ich manipulacji. W kontekście programowania obiektowego, Entity Object to nie tylko struktura, ale sposób myślenia, który prowadzi do wydajniejszego i bardziej logicznego kodowania.
Touch targets w projektowaniu aplikacji mobilnych
29 kwi 2024
Zapewne korzystałeś już z wielu aplikacji mobilnych, których interfejs wydawał Ci się intuicyjny, a użytkowanie – łatwe i przyjemne. To najprawdopodobniej zasługa celów dotykowych – elementów, nad którymi projektanci aplikacji poświęcają wiele godzin, aby właśnie takie wrażenia mogli doświadczyć użytkownicy.
Zwiększenie wydajności testowania kodu za pomocą xUnit
29 kwi 2024
Testowanie kodu to kluczowy element wyróżniający profesjonalne tworzenie oprogramowania. Zwiększenie wydajności testowania jest jednym z najważniejszych wyzwań deweloperów. Dziś przyjrzymy się, jak dzięki wykorzystaniu xUnit możemy osiągnąć ten cel i przyspieszyć prace nad projektem.
Mockowanie danych: Testowanie aplikacji mobilnych
28 kwi 2024
Mockowanie danych zmienia paradygmat testowania aplikacji mobilnych, wprowadzając efektywność na zupełnie nowy poziom. Poznaj strategie umożliwiające symulację rzeczywistych danych, dzięki czemu testowanie staje się szybsze i bardziej wiarygodne.
Guava - wydajne programowanie w Javie
28 kwi 2024
Java ma swój zestaw narzędzi, ale siła programowania w Javie tkwi w wysokiej jakości bibliotekach trzecich stron. Jedną z najbardziej cenionych przez programistów jest Guava. W tym artykule zapraszamy do odkrycia sekretu wydajnego programowania w Javie, czyli technik i mechanizmów oferowanych przez Guavę.
NPS: Mocne strony narzędzia pomiaru satysfakcji
28 kwi 2024
NPS, czyli Net Promoter Score, to skuteczne narzędzie badania satysfakcji klienta, które pomaga firmom zrozumieć, jak dobrze spełniają oczekiwania swoich klientów. Jego naturalna prostota i efektywność sprawiają, że NPS jest coraz częściej wykorzystywane w różnych branżach. Odkryjmy mocne strony tego narzędzia.
Co to jest Middle-of-Funnel (MOF) i dlaczego jest ważne dla strategii marketingowej?
27 kwi 2024
Middle-of-Funnel (MOF) to etap na ścieżce zakupowej, który jest często niedoceniany, ale ma kluczowe znaczenie dla sukcesu strategii marketingowej. Po etapie budowania świadomości brandu, MOF koncentruje się na konwersję zainteresowanych osób w potencjalnych klientów. Pozwala to na budowanie głębszych relacji oraz przygotowanie terenu pod etap decyzji zakupowej.
Zobacz wszystkie artykuły