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"}
...
Powiązane artykuły
Optymalizacja obrazów Dockera
24 lip 2023
Obrazy dla kontenerów Dockera mogą być naprawdę ciężkie. W internecie można znaleźć przykłady image'ów ważących nawet po 5 lub więcej gigabajtów. Jest to problem, zarówno dla developerów, używających Dockera do lokalnego developmentu, jak i dla osób odpowiedzialnych za setup aplikacji w środowiskach testowych i produkcyjnych. W artykule zostanie poruszony temat zmniejszania rozmiaru obrazów Dockera.

Pillar Page - Sekrety efektywnej organizacji treści na Twojej stronie internetowej
25 wrz 2023
Wyobraź sobie dom, w którym wszystko jest pięknie posortowane w jednym miejscu. Takim 'domem' dla Twojej strony internetowej może być Pillar Page - dedykowana strona, na której skupia się wszystko, co wartościowe dla Twoich odbiorców. Pozwoli Ci to z łatwością zarządzać i organizować treść na stronie.
Rozszerzanie możliwości Big Data z Apache Samza
25 wrz 2023
Big Data, czyli duże zbiory danych, nieustannie zyskują na znaczeniu w świecie IT. Nowe możliwości analizy i przetwarzania tychże daje Apache Samza - otwarte oprogramowanie stworzone przez Apache Software Foundation. Wspierającym nas procesor strumieniowy o wysokim przepustowości, Samza pomaga rozwijać potęgę Big Data. W tym artykule zajmiemy się szczegółami i możliwościami wynikającymi z korzystania z Apache Samza.
InVision Studio - niezbędne narzędzie dla każdego projektanta UI/UX
25 wrz 2023
InVision Studio to narzędzie, którego każdy projektant UI/UX powinien mieć w swoim arsenale. Pomaga w tworzeniu responsywnych interfejsów, prototypów i animacji, umożliwiając szybką i efektywną pracę. Doceniany za innowacyjność, łatwość obsługi oraz szeroki zakres funkcji, InVision Studio silnie zaznacza swoją obecność w świecie projektowania UI/UX.
Efektywne prowadzenie webinarów w sektorze IT
25 wrz 2023
W dobie cyfryzacji, webinar staje się jednym z najważniejszych narzędzi w sektorze IT. Powodzenie webinaru zależy od wielu czynników, począwszy od przygotowania, a skończywszy na umiejętności utrzymania zaangażowania uczestników. Zatem cyfrowym szlakiem: poradnik efektywnego prowadzenia, to przewodnik, który pomoże przetrwać w cyfrowym świecie webinarów IT. Dowiedz się więcej, jak skutecznie zorganizować i przeprowadzić webinar, a swoje zdobycze wiedzy zastosować w praktyce.
MyISAM - mechanizm składowania danych w MySQL
25 wrz 2023
MyISAM, zasłużony odpowiednik MySQL dla architektury składowania danych, to prawdziwy klejnot w jego koronie. Zapewniając szybką indeksację i wysoki poziom skompresowanych danych, MyISAM umożliwia efektywne zarządzanie dużymi ilościami informacji. Weźmy zestaw narzędzi, aby zgłębić tajemnice tego mechanizmu składowania danych.
Zobacz wszystkie artykuły