fbpx
Kategorie
Szkolenie Zrób to sam

Szkolenie z automatyzacji pobierania danych z internetu

Pobieranie danych z internetu w sposób zautomatyzowany to coś, co mam przećwiczone na wiele sposobów. Przez pół roku co minutę rejestrowałem informacje o statystykach wypożyczeń samochodów elektrycznych w sieci Vozilla i wyszedł z tego raport na kilkanaście stron i kilkadziesiąt wykresów. Przez 21 miesięcy rejestrowałem co minutę aktywność Traficara a potem za pomocą technik uczenia maszynowego prognozowałem trendy obciążenia sieci – dzienne, tygodniowe czy sezonowe. Była też analiza popularności portalu Albicla, wiecie bo czytaliście.

Wiele projektów, wiele podejść, wiele pułapek w które wpadłem, abyście wy nie musieli! Niby automatyczne pobieranie danych nie jest trudne, to prawda. Czasem jednak nie znamy tego jednego narzędzia albo techniki, dzięki którym cała robota byłaby zrobiona dziesięć razy szybciej.

Tutaj wchodzę ja i dzielę się z wami swoim doświadczeniem oraz materiałami. Obejrzycie moje skrypty, dowiecie się jak ogarniam miliony plików, jak organizuję przetwarzanie danych – oraz masę innych rzeczy. Poniżej szczegółowa agenda, cennik (nietypowy!) oraz informacje o zapisach.

Data i miejsce szkolenia

Szkolenie odbędzie się online 10 grudnia 2021. Start około 9:00, planowy czas trwania 6h. Do odbioru wystarczy przeglądarka internetowa.

Zakup nagrania nie jest obecnie możliwy. Zapisz się na newsletter, aby z wyprzedzeniem dowiedzieć się o kolejnej edycji szkolenia.

Uczestnicy otrzymają 30-dniowy dostęp do nagrania oraz kopię slajdów, które będą wyświetlane podczas prelekcji.

Agenda

Wstęp
• O czym będzie, o czym nie będzie
• Trzy projekty, na których będą bazować przykłady z życia
↣ Albicla czyli analiza popularności serwisu społecznościowego
↣ Vozilla czyli analiza aktywności wypożyczalni samochodów
↣ rozkłady jazdy komunikacji miejskiej czyli informacja publiczna do ponownego wykorzystania
• Cztery ustawy, które warto znać przed scrapowaniem
↣ Ustawa o dostępie do informacji publicznej
↣ Ustawa o prawie autorskim i prawach pokrewnych
↣ Ustawa o ochronie baz danych
↣ Rozdział XXXIII Kodeksu Karnego

Rekonesans i dobre wychowanie
• Jak się rozglądać i czego szukać
• Jak być dobrym robotem
• Jak być dobrym obywatelem

Podstawy scrapowania
• Wady i zalety różnych formatów: TXT/CSV/TSV/JSON/YAML/XML/XLS/PDF
• Dobra, PDF wymieniłem dla jaj. Nie będziemy scrapować PDF.
• Zastosowania różnych formatów, ramka danych kontra struktura drzewiasta
• Locale i dlaczego ich nie znosimy
• REST kontra GraphQL kontra surówka
• Enumeracja zasobów

Krótkie przypomnienie podstaw HTTP
• żądanie (z komendą)
• odpowiedź
• nagłówki żądania i odpowiedzi
• ciasteczka
• F12 w przeglądarce
• Fiddler / Charles

Efektywne scrapowanie
• linia komend – curl czy wget
• kilka przydatnych przykładów curla (tyle, jeśli chodzi o zagadkę)
• klonowanie zapytań z przeglądarki / proxy
• NAJWAŻNIEJSZY trik dotyczący curla
• co trudno zrobić w skryptach
• metody zaawansowane – headless Chrome, Puppeteer

Scrapowanie długoterminowe
• jak scrapować API co minutę przez 20 miesięcy
• alarmy, gdy coś nie działa (z przykładami „zrób to sam” i SaaS)
• mój skrypt, którym scrapowałem Vozillę i Traficara
• krótko o cronie
• skąd wziąć serwer z shellem
• zużycie dysku i dlaczego nasz dostawca shella może nas nie polubić
• a może serverless?

Uwierzytelnianie
• jak zrobić, żeby skrypt udawał człowieka
• basic auth, cookie, tokeny, refresh tokeny i reszta
• MAC/HMAC/JWT

Sposoby na omijanie limitów ruchu
• typy blokad i dławików
• skąd wziąć wiele IP
• jeszcze raz o udawaniu przeglądarki
• wykrywaczki robotów, captcha
• wyciąganie tokena z apki mobilnej

Organizacja pobranych plików
• ile plików to za dużo plików?
• gdzie i jak trzymać milion plików?
• jak przetwarzać pliki mające 10 MB, 100 MB, 1 GB, 10 GB, 100 GB, 1 TB
• na co trzeba uważać gdy pliki są duże lub za duże
• czym edytować za duże pliki

Kompresja składowanych plików
• Czym, dlaczego, kiedy
• Jak zjeść ciastko i mieć ciastko

Organizacja przetwarzania danych
• Co zbierać, co kasować, co porzucać
• Weryfikacja tego, co zapisano
• Wykrywanie usterek i anomalii
• Eksperymentowanie oraz automatyzacja
• Przykład iteracyjnej analizy i pobierania
• Na jak dużej próbce danych pracować
• NAJWAŻNIEJSZA porada dotycząca przetwarzania
• Dane nie mieszczą się w pamięci – co teraz? Trzy rozwiązania!

Optymalizacja przetwarzania
• HDD kontra SSD w praktyce
• CPU-bound kontra IO-bound
• Porady dotyczące wielowątkowości

Narzędzia, które warto znać
• kilkanaście metod wyciągania danych z różnych formatów
• kilkanaście mało znanych narzędzi, które bardzo w tym pomogą
• łączenie metod i narzędzi, od szczegółu do ogółu

Pułapki i sztuczki
• wszystko, co nie zmieściło się w poprzednich rozdziałach

Cena szkolenia

Uwaga, będzie nietypowo. Szkolenie kosztuje jedną dniówkę. Jeśli pracujesz na etacie, jest to 1/20 pensji brutto; jeśli B2B – osiem stawek godzinowych. Gdy nie możesz lub nie chcesz zdradzać zarobków, zaokrąglij tę kwotę w górę. Płatność przelewem na konto, Ty wskażesz kwotę, ja wystawię fakturę (nie jestem płatnikiem VAT, brutto=netto).

Jestem pewny, że wiedza wyniesiona ze szkolenia pozwoli ci zaoszczędzić o wiele więcej, niż 8 godzin. Gdyby wtedy wiedział to, co teraz, raport o aktywności Vozilli powstałby dobre dwa tygodnie szybciej. Skorzystaj z mojego doświadczenia i omiń problemy, na które natrafiłem!

Jak się zapisać?

Zakup nagrania nie jest obecnie możliwy. Zapisz się na newsletter, aby z wyprzedzeniem dowiedzieć się o kolejnej edycji szkolenia.

Aby wziąć udział w szkoleniu, dokonaj przelewu podanej wyżej kwoty na poniższy rachunek bankowy ORAZ potwierdź e-mailem na adres tomasz.zielinski@gmail.com, że taki przelew został zrobiony. W tym mailu umieść też dane nabywcy – imię i nazwisko (ew. firma), ulica, numer lokalu, kod i miasto. Dla ułatwienia dodam, że tych danych nie da się nijak zweryfikować, ale muszę mieć co wpisać na fakturze.

Numer konta: 13191010482407982802310001
Tytuł przelewu: imię i nazwisko oraz e-mail uczestnika
Dane sprzedawcy: FTL Software Tomasz Zieliński, Poleska 47/13, 51-354 Wrocław, NIP 899-208-16-48

Gdy otrzymam przelew i mail z danymi, dostaniesz e-mailem fakturę. Uwaga – to ręczny proces, faktury będę rozsyłał wieczorami. Wtedy też odpowiem na otrzymane pytania.

Pytania i odpowiedzi

• data i miejsce szkolenia
10 grudnia 2021, godz. 9-15, szkolenie zdalne (dostęp przez przeglądarkę internetową)

• czy będą przerwy?
Tak, co godzinę zrobimy 5 do 10 minut przerwy

• czy szkolenie będzie nagrywane?
Tak, otrzymasz 30 dni dostępu do nagrania, udostępnię też slajdy użyte podczas prezentacji

• kto sprzedaje szkolenie
FTL Software Tomasz Zieliński, Poleska 47/13, 51-354 Wrocław, NIP 899-208-16-48

skąd wiesz, czy ktoś cię nie oszuka i nie zaniży ceny
Ludzie są uczciwi a materiał ze szkolenia pozwoli ci zaoszczędzić więcej, niż jeden dzień pracy. To dobra oferta.

czy będą zniżki last-minute?
Nie będzie.

• czy mogę dostać fakturę pro-forma?
Tak, napisz mi maila z danymi odbiorcy.

• czy szkolenie może opłacić pracodawca / uczelnia / ciocia?
Tak, ale w tytule przelewu niech umieści imię i nazwisko oraz e-mail uczestnika

• czy mogę kupić szkolenie na prezent?
Tak, ale chyba lepiej, jeśli potencjalny obdarowany zapozna się z agendą i wyrazi chęć uczestnictwa.

• co trzeba umieć aby wziąć udział
Aby wykorzystać w praktyce wiedzę ze szkolenia, konieczna jest umiejętność wydawania poleceń z linii komend. Mile widziana (choć niekonieczna) będzie umiejętność programowania w dowolnym języku. Warto mieć ogólne pojęcie, co to jest HTML, HTTP, CSV czy XML. Idealny uczestnik próbował scrapować dane, ale napotkał problemy i teraz chciałby dostać sprawdzone receptury.

• czy mogę kupić szkolenie dla kilku osób naraz?
Tak – skontaktuj się najpierw e-mailem i napisz, ile to osób.

• dlaczego faktura bez VAT?
Nie jestem płatnikiem VAT. Podstawa prawna – zwolnienie podmiotowe z VAT na podstawie art. 113 ust. 1 ustawy o VAT. Moja działalność gospodarcza ma bardzo niewielkie obroty. Ja nie doliczę VAT a ty go nie odliczysz.



O autorze: zawodowy programista od 2003 roku, pasjonat bezpieczeństwa informatycznego. Rozwijał systemy finansowe dla NBP, tworzył i weryfikował zabezpieczenia bankowych aplikacji mobilnych, brał udział w pracach nad grą Angry Birds i wyszukiwarką internetową Microsoft Bing.

23 odpowiedzi na “Szkolenie z automatyzacji pobierania danych z internetu”

Cześć,
Fajna sprawa. Pytania:
– czy to forma szkolenia, czy bardziej wykład?
– windows czy linux potrzebny?
– czy jak przeleję wiecej niż dniówkę, to dostanę podwyżkę w pracy?

Hej!
ad 1) szkolenie będzie miało formę wykładu ze slajdami, przeplatanego demonstracjami na żywo; nie będzie to warsztat tzn. uczestnicy nie dostaną zadań do wykonania
ad 2) to w zasadzie obojętne, każdy może używać systemu który bardziej lubi; choć wiadomo, że Bash umie więcej niż cmd.exe (nie znam za dobrze Powershella)
ad 3) Pan Jan z Krosna przelał trzy dniówki i dostał podwyżkę po tygodniu; pani Grażyna ze Świebodzic nie zapisała się i potrącił ją rowerzysta

Najważniejsze na szkoleniach:
1) ilu max. uczestników
2) ile czasu na pytania od uczestników (zakładam że będą zbierane w trakcie i hurtowo omawiane na koniec)?
Im więcej uczestników tym większe zamieszanie.
Spasiba.

Limit nie jest na razie określony. Na pytania będę odpowiadał w trakcie oraz po prelekcji. Gdyby zdarzyło się, że dobrych pytań będzie więcej niż czasu na przejście przez nie, zrobię wideo-dogrywkę z samymi odpowiedziami.

Nagranie i slajdy dostaną wszyscy, którzy opłacą udział. Uczestnictwo na żywo 10 grudnia nie jest obowiązkowe.

„Aby wziąć udział w szkoleniu, dokonaj przelewu podanej wyżej kwoty na poniższy rachunek bankowy ORAZ potwierdź e-mailem na adres tomasz.zielinski@gmail.com, że taki przelew został zrobiony. W tym mailu umieść też dane nabywcy – imię i nazwisko (ew. firma), ulica, numer lokalu, kod i miasto.”

Panie informatyk ręce opadają. Darmowy Gmail nie spełnia wymagań RODO!

Są różne rodzaje bezrobocia, np. takie spowodowane odziedziczeniem fortuny 😉
Odezwij się mailem

Ostatni dzwonek, do maila z potwierdzeniem danych do faktury dołącz proszę potwierdzenie przelewu (albo zapłać szybkim przelewem Swift)

Czy będzie nowy termin w 2022 roku? Trochę się muszę podszkolić, a bardzo chciałabym wziąć udział w szkoleniu.

Tez swego rodzaju ciekawostka. Podanie adresu paypal zajeloby minute, a bylaby szansa na dodatkowe pare stowek. Zaskoczonym 🙂

PayPal dla firm to nie żadna rewelacja, ja tam nie jestem zaskoczony tym, że nie można 🙂 Ale ja jestem księgowym, więc wiem nieco więcej w tym zakresie 🙂 Revolut dla firm to już prędzej, ale chcąc pozostać w zgodzie z przepisami należałoby go zgłosić w US jako konto firmowe, a brak polskiego nr rachunku z góry powoduje uznanie go za podejrzane, tak że też odradzam. Płatności kartą generują zazwyczaj spore koszty obsługi i nie opłacają się przy jednorazowych / cyklicznych ale rzadkich akcjach.
Zatem, jak powiedziałem powyżej, kompletnie mnie to nie dziwi 🙂

Dowód przez powołanie się na bycie księgowym…
PayPal to był przykład, chodzi o udostępnienie płatności ludziom bez konta bankowego w RP, informatykzakladowy ma czytelników poza Polską również 🙂

Po drugie zawierając umowe z PayPal w Europie, zawiera się ją z podmiotem zarejestrowanym w Luksemburgu, więc odniesienia do USA są zbędne.

Po trzecie jak najbardziej wypłaty z PayPal można kierować na polski rachunek bankowy.

PayPal to nie bank, więc brak numeru rachunku nie jest niczym zaskakującym. Podobnie jest w przypadku PayU czy innych operatorów płatności elektronicznych.

PayPal nie jest w Polsce powszechnie używany ze względu na dominację Allegro/PayU, jak również ze względu na uwarunkowania dotyczące ochrony transakcji (PayPal wymaga adresu dla fizycznych dostaw, a my na potęgę korzystamy z paczkomatów). To ograniczenie nie dotyczy produktów niematerialnych, jak dyskutowany tutaj.

Krótko mówiąc – odradzanie PayPala ma sens ze względów biznesowych (np. wysokość prowizji, dostawy do paczkomatów), raczej nie ma podstaw ze względu na uwarunkowania prawne czy księgowe. Odradzanie go a priori „bo jestem księgowym starej daty i preferuję rachunki bankowe w formacie NRB” może prowadzić d zmniejszenia przychodów u klientów bez powodu, a to chyba nie jest dobra praktyka.

Odczytałem US jako USA (FATCA) mea culpa.

Czy posiadanie konta PayU trzeba zgłaszać do US? Czy posiadanie konta BlueMedia trzeba zgłaszać do US? Nie trzeba. Czy posiadanie konta Przelewy24 trzeba zgłaszać do US? Nie, bo to nie są rachunki bankowe. PayPal też nie. Revolut i owszem, bo korzysta z licencji bankowej litewskiej i nadaje użytkownikom IBAN, więc w sumie to najbardziej „kłopotliwe” rozwiązanie.

Anyway, debata akademicka. Po prostu zachęcam autora do przyjmowania płatności od polskiej emigracji. Chciałbym mu kiedyś za coś zapłacić a nie mam konta w PL, kosztów transakcyjnych tradycyjnych banków nie warto ponosić, a dostępnych jest pełno metod zrobienia tego tanio i dobrze.

jk: przy następnych akcjach na pewno skorzystam z jakiegoś PayU lub podobnego pośrednika

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.