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
Architektura VIPER: Podstawy i praktyczne wskazówki
14 mar 2024
Architektura VIPER to model, wprowadzony dla zwiększenia przejrzystości i testowalności kodu w projektach iOS. Jego implementacja może wydawać się skomplikowana, dlatego przygotowaliśmy przystępny przewodnik, obejmujący teorię i praktykę. Od podstaw po konkrety - zrozumiesz kluczowe elementy tego rozwiązania, aby skutecznie je wykorzystać.
Zasady i Efektywność Metodyki Disciplined Agile
14 mar 2024
Rozważając różne metodyki Agile, często zapominamy o jednej o nazwie Disciplined Agile (DA). Ta metodyka, choć nie tak popularna jak Scrum czy Kanban, ma w sobie wiele zalet, które mogą przynieść wyraźne korzyści w realizacji projektów IT. Sprawdźmy, jakie zasady rządzą DA i jak skuteczna jest ta metodyka w praktyce.
Strangler Fig Pattern: Skuteczne strategie refaktoryzacji starej aplikacji
14 mar 2024
Pisanie nowego kodu jest ekscytujące. Ale co z częścią IT dotyczącą refaktoryzacji? Jak skutecznie modernizować starą aplikację, nie narażając jej na ryzyko awarii? Strangler Fig Pattern to rozwiązanie, które pozwala na stopniową zamianę starego systemu na nowy. Przeanalizujmy tę inspirującą strategię.
QTest a jakość oprogramowania - jak to działa?
13 mar 2024
Zapewnienie jakości oprogramowania staje się coraz ważniejsze w dynamicznie rozwijającym się środowisku IT. Kluczową rolę w tym procesie odgrywają narzędzia do testowania kodu, takie jak QTest. Poznaj zastosowanie i funkcjonalność QTest w kontekście zapewniania najwyższego standardu tworzonego oprogramowania.
Wprowadzenie do iPaaS: Jak skorzystać z Integration Platform as a Service?
13 mar 2024
Zrozumienie i efektywne korzystanie z iPaaS (Integration Platform as a Service) może być krokiem milowym dla Twojej firmy. Nie tylko ułatwia przepływ danych między różnymi aplikacjami, ale również Ci pozwala skoncentrować się na podstawowych zadaniach, gdyż zautomatyzowana integracja zajmuje się resztą. Nawet jeśli jesteś początkującym, nie musisz się obawiać - ten artykuł pomoże Ci zrozumieć, jak wykorzystać iPaaS w praktyce.
Meta Keywords: Jak poprawić SEO Twojej strony
13 mar 2024
Poznaj sekrety efektywnego SEO! W tym artykule przyjrzymy się bliżej metatagowi 'keywords', który pomimo swojego kontrowersyjnego statusu, ma potencjał zwiększyć widoczność Twojej strony w wynikach wyszukiwania. Czytaj dalej, aby dowiedzieć się więcej o tym nieocenionym narzędziu.
Nexus - efektywne zarządzanie pracą zespołową
12 mar 2024
Nexus, to nowoczesne podejście do zarządzania projektami, które stawia na efektywną współpracę zespołową. Puszcza w niepamięć długotrwałe plany i nieelastyczne harmonogramy. Przedstawia skuteczne strategie do zarządzanie projektem, które są wysoce efektywne.
Zobacz wszystkie artykuły