Scrapy: web scraping
Najbliższe terminy tego szkolenia
Standardy JSystems
- Wszyscy nasi trenerzy muszą być praktykami i osiągać średnią z ankiet minimum 4.75 na 5. Nie ma wśród nas trenerów-teoretyków. Każdy trener JSystems ma bogate doświadczenie komercyjne w zakresie tematów z których prowadzi szkolenia.
- Wszystkie szkolenia mają format warszatowy. Każde zagadnienie teoretyczne jest poparte rzędem warsztatów w ściśle określonym formacie.
- Terminy gwarantowane na 100%. Jeśli jakiś termin jest oznaczony jako gwarantowany, oznacza to że odbędzie się nawet jeśli część grupy wycofa się z udziału. Ryzyko ponosimy my jako organizator.
- Do każdego szkolenia które wymaga jakiegokolwiek oprogramowania dostarczamy skonfigurowane, gotowe hosty w chmurze. Dzięki temu uczestnik nie musi nic instalować na swoim komputerze (i bić się z blokadami korporacyjnymi). Połączenie następuje przez zdalny pulpit lub SSH - w zależności od szkolenia.
Program szkolenia
- Czym jest webscraping?
- O Robots.txt
- User-agent
- Jak serwery rozpoznają boty?
- Etyka
- Ogólnie panujące zasady
- Przykłady platform korzystających z webscrapingu
- Jak działa protokół HTTP?
- Struktura HTML
- Kody HTTP zwracane przez serwery
- Nagłówki zwracane przez HTTP
- Rodzaje typów zawartości zwracanych przez serwery http
- Najbardziej popularne narzędzia
- Selenium
- Requests
- BeautifulSoup
- Scrapy
- Użycie klasy scrapy.Spider
- Konfiguracja bota - start_urls, custom_settings, allowed_domains
- Jak generować listę URL do odwiedzenie
- Metody klasy scrapy.Spider - jak używać
- Definiowanie klas pobieranych danych
- Jak parsować XML/HTML
- Wyszukiwanie elementów HTML po atrybutach
- Xpath
- Przydatne narzędzia
- Regexp101
- Xpath helper
- Jak parsować JSON
- Biblioteka json
- Jak parsować tekst - o wyrażeniach regularnych
- Biblioteka re
- Flagi w wyrażeniach regularnych
- Jak pobierać obrazy i inne typy plików
- Zapisywanie wartości plików binarnych z użyciem biblioteki io
- Definiowanie klas pobieranych rekordów - scrapy.Item
- Walidacja pobieranych rekordów
- Standaryzacja pobieranych rekordów
- Przetwarzanie pobieranych rekordów
- Łaćuchy wywołań metod
- Czym jest callback? Jak działa?
- Przekazywanie wartości pomiędzy zapytaniami
- Scrapowanie strony na przykładzie:
- Pobieranie danych z użyciem xpath oraz regex
- Łańcuchy zapytań
- Warunkowe przerwanie scrapingu
- Zaawansowany scraping
- Cookies
- Formularze
- Prosy
- Inne przeszkody wymagające
- Użycie scrape shell
- Web crawling
- Crawling całych domen
- Podążanie za znalezionymi linkami wewnątrz domeny
- Filtrowanie znalezionych linków
- Problemy:
- Javascript
- Obsługiwanie wyjątków
- Captcha, bany, limity
- Uruchamianie scrapy na platformie zyte.com
- Deployment za pomocą CLI
- Deployment za pomocą klienta web
- Scrapowanie za pomocą Cron
- Statystyki
- Zapisywanie rezultatów scrapingu na przykładzie AWS S3 i lokalnie
- Zapisywanie rezultatów z użyciem Item Pipeline w Scrapy
Opis szkolenia
Szkolenie odbywa się na żywo z udziałem trenera. Nie jest to forma kursu video!O skoleniu w skrócie
Warsztatowe szkolenie z webscrapingu prowadzone przez trenera z komercyjnym doświadczeniem w tej dziedzinie.
Dla kogo?
Aby uczestniczyć w tym szkoleniu potrzebna jest podstawowa wiedza z programowania w języku Python - jak definiować klasy, pisać funkcje i uruchamiać skrypty w języku Python.
Charakter szkolenia
Szkolenie ma charakter warsztatowy. W trakcie szkolenia uczestnicy otrzymają praktyczną wiedzę na temat webscrapingu. Każde omówione zagadnienie podsumowane jest kilkoma następującymi po sobie ćwiczeniami o wzrastającym poziomie trudności. W ramach szkolenia napisane będą programy w języku Python pozwalające na cykliczne pobieranie danych z 5 stron.
Przebieg szkolenia
- Zajęcia rozpoczynamy omówieniem webscrapingu - jakie daje nam możliwości, jak przebiega.
- Zajęcia praktyczne rozpoczynamy instalacją i konfiguracją interpretera języka Python oraz IDE - Visual studio code. Uczestnicy szkolenia mogą pracować na dowolnym innym znanym sobie IDE.
- Po poznaniu podstaw zajmiemy się budową scrapera pobierającego listę aktualnie popularnych książek z przygotowanej strony.
- W kolejnym kroku pobierać będziemy dane umieszczone na powiązanych stronach takich jak podstrona zawierające szczegóły o książce czy zdjęcia.
- Poznamy bliżej narzędzia w przeglądarce Firefox umożliwiające sprawne pobieranie danych z witryn, rozpoznanie najlepszej metody pobierania danych i sprawdzania poprawności Xpath.
- Pobierzemy dane z kilku popularnych portali za pomocą różnych metod - poprzez API, HTML, RSS.
- Dowiemy się jak sprawnie przetwarzać dane po pobraniu ich, jak walidować, przetwarzać i zapisywać dane cyklicznie uruchamianych scraperów.
- Wdrożymy stworzone programy na platformę Zyte i dowiemy się jak korzystać z platformy by zarządzać scraperami.
Prowadzący szkolenie: Łukasz Jaworowski
Zawodowo programista od 8 lat. Typowy praktyk lubiący rozwiązywanie problemów biznesowych od koncepcji do gotowego programu. Skupiony na technologiach backendowych. Zaczynał od Javy, większość czasu w pracy spędził programując systemy przetwarzania danych oraz aplikacji webowych z użyciem języka Python i AWS. Od 2021 roku pracuje jako lider techniczny w projektach Golang w firmie z obszaru security/crypto. Doświadczenie zdobywał w startupach, Fintechach, bankach oraz realizując projekty jako freelancer. W wolnym czasie poza programowaniem lubi sport i inne formy rywalizacji.
Stanowisko robocze
Do tego szkolenia każdy uczestnik otrzymuje dostęp do indywidualnej wirtualnej maszyny w chmurze. Ma ona zainstalowane i skonfigurowane wszystko co potrzebne do realizacji szkolenia. Maszyna będzie dostępna przez cały okres szkolenia.
Gdy na jakiś termin zgłosi się minimalna liczba osób, termin oznaczamy jako gwarantowany.
Jeśli jakiś termin oznaczony jest jako gwarantowany to oznacza to, że na 100% się odbędzie we wskazanym czasie i miejscu.
Nawet gdyby część takiej grupy zrezygnowała lub przeniosła się na inny termin, raz ustalony termin gwarantowany takim pozostaje.
Ewentualne ryzyko ponosimy my jako organizator.
Przejdź do terminów tego szkolenia
Sprawdź, co mówią o nas ci, którzy nam zaufali
Trenerzy kategorii Python
Programista z ponad 12 letnim stażem, pracował dla klientów z Norwegii, Szwecji, Wielkiej Brytanii oraz Niemiec. Pracował dla takich firm jak Schibsted Tech Polska oraz PrimeQ tworząc strony o bardzo dużym natężeniu ruchu, skrypty automatyzujące pracę innych, w tym także crawlery. Trener, który na sali spędził ponad 5000h prowadząc szkolenia z baz danych, programowania w Pythonie i PHP.
Kacper uważa, że język programowania to tylko narzędzie w rękach doświadczonego dewelopera, dlatego nieustannie lubi uczyć się nowych rzeczy oraz zarażać miłością do programowania innych (stąd pewnie ten kanał na Youtubie -> Kacper Sieradziński).
Programista Pythona od 2018 roku z backgroundem w matematycznym modelowaniu procesów fizycznych. Specjalizuje się w obszarach związanych z pozyskiwaniem, przetwarzaniem i analizą danych. Jako data scientist pracował w projektach dla branż takich jak telekomunikacja, media czy finanse. Doświadczony szkoleniowiec, który lubi i potrafi przekazywać wiedzę. W wolnym czasie podróżuje lub pracuje nad nowymi szkoleniami.
DevOps Enginner z zamiłowaniem do części "Dev" wspomnianej roli. Pasjonat ideologii DevOps, ze szczególnym uwzględnieniem potoków dostarczania oprogramowania. Swoje doświadczenie opiera o dostarczanie skalowalnych usług mikroserwisowych oraz projekty wdrażanie w AWSie dla dużych klientów. W codziennej pracy jest zaangażowany na wielu poziomach cyklu dostarczania oprogramowania. Od wielu lat tworzy narzędzia dla deweloperów, które skracają cykl, ułatwiają prace i definiują standardy w zespołach.
Posiada doświadczenie w zarzadzaniu zespołami developerskimi. Absolwent Politechniki Warszawskiej, swoja karierę w IT zaczynał właśnie od szkoleń w JSystems, które pozwoliły mu nabrać wiatru w żagle i pomogły spełnić marzenia o karierze w IT. Dziś w JSystems jako trener zakresu AWS, który zachęci was do korzystania z chmury Amazona i pokaże, że nie jest to takie trudne i "kosztowne".
Certyfikowany inżynier z zakresu architektury, DevOps i Networkingu w AWS. Zwolennik "przemyślanego" podejścia zwinnego w prowadzeniu projektów. Charakteryzuje go podejście do wyzwan z "Can do attitude" i "Get Things Done". W swojej pracy najbardziej ceni możliwość rozwiazywania problemów biznesowych w oparciu o najnowsze technologie chmurowe. Zwolennik praktyki nad teorią. Ostatnio mocno zaangażowany w adaptacje możliwości jakie niesie ze sobą platforma Backstage.io.