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.
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
Warm Calling: Czym jest i dlaczego jest skuteczny?
20 gru 2024
Warm Calling odgrywa kluczową rolę w biznesie, stanowiąc strategię o dużej skuteczności. Pomimo swojej prostoty, nie jest jeszcze powszechnie stosowany. Czy jesteś ciekaw, jak ta metoda działa i jakie przynosi korzyści? Zapraszam do lektury.
Architecture Decision Record (ADR): Klucz do zrozumienia projektu IT
20 gru 2024
Architecture Decision Record (ADR) to narzędzie gwarantujące przejrzystość i zrozumienie kierunków projektu IT. Formuje ono dokumentację, która pomaga zrozumieć, dlaczego pewne koncepcje zostały przyjęte lub odrzucone. ADR to klucz, który odkrywa istotę strategicznych decyzji w projektach IT.
Modular Monolith: Wprowadzenie do nowoczesnej architektury monolitycznej
20 gru 2024
Czy możemy połączyć zalety monolitu i mikroserwisów? Wyjaśniamy koncepcję Modularnego Monolitu, nowoczesnego podejścia do projektowania aplikacji monolitycznych. Te praktyki pomagają zorganizować kod w łatwy do zrozumienia, skalowalny i łatwy do utrzymania sposób. Dowiedz się, jak zastosować tę koncepcję w swoim projekcie.
Product Vision Board - klucz do skutecznego planowania produktu. Dlaczego warto go stosować?
19 gru 2024
Zarządzanie produktem to sztuka łącząca strategię, praktyczność i wizjonerskie myślenie. Jednym z najważniejszych narzędzi pomagających w efektywnej koordynacji teorii i praktyki jest Product Vision Board - klucz do efektywnego planowania. Ale dlaczego jest tak ważny i dlaczego warto go stosować? Zaczynając od definicji, przejdziemy do korzyści wynikających z stosowania tego narzędzia.
PBN w SEO: Czy warto inwestować w swoją strategię marketingową?
19 gru 2024
Pozycjonowanie stron to skomplikowany proces, w którym ważną rolę odgrywa budowanie sieci PBN. Czy inwestycja w Prywatne Sieci Blogów to skuteczna strategia SEO? Czy warto zainwestować swoje zasoby w taką formę marketingu? Ten artykuł ma na celu odpowiedzieć na te pytania.
Hosting dedykowany a współdzielony: Porównanie i wybór optymalnego rozwiązania
19 gru 2024
Rozwój firmy często wiąże się z koniecznością podjęcia decyzji o wyborze odpowiedniego hostingu. Istotne jest zrozumienie, czym różnią się od siebie hosting dedykowany i współdzielony, aby móc świadomie wybrać najbardziej optymalne rozwiązanie. Zapraszam do porównania tych dwóch usług.
Design Fiction: Czym jest i jak wpływa na rozwój technologii?
18 gru 2024
Design Fiction to intrygująca koncepcja, łącząca sferę wyobraźni z praktycznym projektowaniem technologii. Doskonale obrazuje, jak fikcyjne scenariusze mogą wpływać na rozwój nowych rozwiązań technologicznych. Czy jest to idealny punkt startowy dla nowych wynalazków, czy raczej jakie zagrożenia niesie za sobą? Zapraszamy do lektury!
Zobacz wszystkie artykuły