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
Performance Testing – jak poprawnie je wykonać?
24 lip 2024
Performance testing to kluczowy element w procesie tworzenia oprogramowania, mający na celu zapewnienie wysokiej jakości i sprawnego działania aplikacji. W tym przewodniku krok po kroku, przybliżę Ci zasady, metody oraz narzędzia, które pozwolą Ci efektywnie przeprowadzić testy wydajnościowe, a co za tym idzie - optymalizować działanie swojego oprogramowania.
![related-article-image-developer, Performance Testing](/_next/image?url=https%3A%2F%2Fd2ooyrflu7lhqd.cloudfront.net%2Fboringowl_io_developer_working_in_front_of_computer_there_is_co_2ea66295_1261_4fb3_9db6_43224455cd52_a643ef7008.png%3Fformat%3Dauto&w=3840&q=75)
Smarketing: Czym jest i dlaczego jest tak ważny dla współczesnych firm?
24 lip 2024
Smarketing, czyli integracja marketingu i sprzedaży, to nowoczesne podejście, które zdobywa popularność wśród współczesnych firm. W zglobalizowanym świecie, gdzie klienci mają nieograniczony dostęp do informacji, smarketing staje się kluczowy dla sukcesu biznesowego. Poznajmy bliżej tę strategię.
LLMO - Czym jest optymalizacja pod duże modele językowe
24 lip 2024
W świecie technologii, gdzie język staje się kluczem do interakcji między człowiekiem a maszyną, modelowanie językowe odgrywa kluczową rolę. Czy kiedykolwiek zastanawiałeś się, jak optymalizować duże modele językowe? Poznaj LLMO - rewolucyjny krok w dziedzinie modelowania językowego. Optymalizacja pod duże modele językowe otwiera nowe możliwości i perspektywy.
Privacy Sandbox – Kluczowe informacje, które musisz znać
23 lip 2024
Zasadnicze zrozumienie Privacy Sandbox - technologii stworzonej przez Google w celu ochrony prywatności online - jest niezbędne dla każdego, kto działa w świecie cyfrowym. W tym artykule poznasz nie tylko czym jest Privacy Sandbox, ale także jak ta innowacja wpływa na reklamę online i prywatność danych.
Czym tak naprawdę zajmuje się UX Strategist?
23 lip 2024
Zastanawiasz się, czym zajmuje się strateg UX? To osoba która zna wiele aspektów projektowania, która łączy kompetencje biznesowe i techniczne, a jego główne zadanie to odkrywanie, definiowanie i projektowanie celów produktu cyfrowego. Jest to kluczowa rola dla tworzenia użytecznych i atrakcyjnych interfejsów użytkownika.
Testy mutacyjne: Rewolucyjna strategia kontroli jakości w świecie programowania
23 lip 2024
Testy mutacyjne, znane też jako testy genetyczne, tackują wkroczenie w nową erę kontroli jakości w programowaniu. Aktualizacja naszego podejścia do testowania kodu staje się nieunikniona, a testy mutacyjne, podnosząc jakość i niezawodność naszych systemów, mogą odgrywać kluczową rolę.
Badania ilościowe w UX: Optymalizacja procesu i skuteczne wykorzystanie
22 lip 2024
Kiedy tworzymy doświadczenia online, jednym z kluczowych aspektów są badania ilościowe w UX. Natomiast, aby proces badania był efektywny, musi być on odpowiednio zoptymalizowany. W tym artykule zastanowimy się, jak skutecznie wykorzystać badania ilościowe w UX, aby poprawić naszą pracę.
Zobacz wszystkie artykuły