Web Scraping w Pythonie czyli jak pobrać i zapisać dane ze strony bez API (gość Kacper Sieradziński)

Поделиться
HTML-код
  • Опубликовано: 25 дек 2024

Комментарии • 116

  • @mr_anski
    @mr_anski 4 года назад +3

    Świetny kolejny odcinek i kolejna wiedza z Pythona zdobyta. Mam nadzieję, że ten projekt wrześniowy to będzie coś w stylu Python + bazy danych (php).
    Swoją drogą to fajnie, że NIE podchodzisz do tematu w sposób jak dla mega początkującej osoby, bo ileż można słuchać na różnych kursach jak to działają funkcję i operatory... takie rzeczy można sobie "wygooglować". Naprawdę super content i pozdrawiam. ;)

    • @KacperSieradziński
      @KacperSieradziński 4 года назад

      Trochę teorii jest u mnie na kanale, ale staram się by nie była ona też zbyt podstawowa :) Projekt jesienny, to będzie duża rzecz, raczej bez PHP, sam Python. Rzetelnie od początku do tematów mocno zaawansowanych. Nie same filmy, ale mentoring, ćwiczenia, wzajemna motywacja. Szykujemy mega produkt :)

  • @stworzonabybiec1
    @stworzonabybiec1 3 года назад +1

    Wow, dziękuję. Pracuję wyłącznie z SQL, ale Python to mój kierunek na najbliższe lata :) Wpadł mi wiele miesięcy temu do głowy pomysł, który wymagałby właśnie takiego klikania po stronach w pierwszym etapie. Teraz już problem solved ;)

  • @daw70772
    @daw70772 2 года назад

    Super materiał Kacper. Najlepsze jest to, ze tlumaczysz wszystko od 0 tak aby nawet poczatkujaca osoba wszystko zrozumiala. Dzieki!

    • @KacperSieradziński
      @KacperSieradziński 2 года назад

      Bardzo dziękuje za miłe słowa i zapraszam też do mnie na kanał po więcej :D

  • @slusaldo
    @slusaldo 3 года назад +2

    rewelacyjnie tłumaczysz, bardzo przyjemnie mi się pracowało równo z filmikiem, bardzo pomocny i merytoryczny film. Bardzo Cię proszę, wrzucaj więcej takich treści !

    • @KacperSieradziński
      @KacperSieradziński 3 года назад

      Bardzo dziękuje za miłe słowa :) nagrałem sporo więcej filmów poza tym :)

  • @MrWonszBoa
    @MrWonszBoa 2 года назад

    Super z Ciebie gość. Świetnie się słucha. Dzięki za ten materiał.

    • @KacperSieradziński
      @KacperSieradziński 2 года назад +1

      Nie wiem jak się do CIebie zwracać? Może tak azjatycko.. Wen Szu Boa, bardzo dziękuje!

  • @JEsterCW
    @JEsterCW 3 года назад

    Mega materiał zachęcający mnie co raz bardziej do używania python'a ze względu na prostotę pisania rzeczy w tym języku np. na "back end'zie", a potem wyświetlanie tego na front-end'zie używając np vue, którego aktualnie używam wraz z eel'em i nie tylko co tworzy świetną kombinację na prosty program desktopowy dla własnego użytku do analiz, czy jakichkolwiek innych rzeczy, czy potrzeb.
    Świetny oraz prosty materiał i wszystko bardzo dobrze wytłumaczone. Przyjemnie się oglądało i Pozdrawiam!

  • @dariuszradyszkiewicz7340
    @dariuszradyszkiewicz7340 4 года назад +6

    Dzięki Kacper za kolejny film. Seria o Pythonie jest super! Motywujesz do nauki tego języka za co wielki plus :)

    • @KacperSieradziński
      @KacperSieradziński 4 года назад

      No to pochwal się co ostatnio napisałeś i co planujesz napisać później :) Powoli szykujemy się do otwarcia kanału na discordzie dla osób oglądających filmy. Dołączysz? :)

    • @dariuszradyszkiewicz7340
      @dariuszradyszkiewicz7340 4 года назад +1

      @@KacperSieradziński Pewnie, że dołączę. Obecnie dopiero raczkuje, a że preferuje naukę z książek to na tapecie jest teraz "Python dla każdego" M. Dawsona i w kolejce czeka jeszcze "Automatyzacja nudnych zadań...". Szczerze to uczę się powoli bo muszę analizować kod krok po kroku aby to zrozumieć ale się nie poddaje 😏 Co to przedstawiłeś w poprzednim filmie udało mi się bez problemowo zrobić jednak raczej sam bym jeszcze tego nie zrobił. Fajnie że pokazujesz praktyczne zastosowanie Pythona. Jeśli chodzi o to co planuje robić dalej to na pewno ogarnąć Django ale bez solidnych podstaw się jeszcze za to nie zabieram. Sorki za długi komentarz i czekam na otwarcie kanału 😏👍Oby więcej takich inicjatyw

    • @KacperSieradziński
      @KacperSieradziński 4 года назад

      @@dariuszradyszkiewicz7340 Na wszystko przyjdzie pora:) Filmy są zawsze dobrą metodą na ułożenie sobie wiedzy. Mimo nauki i nabywanej wiedzy polecam zostać z nami na dłużej, bo na jesieni szykujemy bombę :)

    • @dariuszradyszkiewicz7340
      @dariuszradyszkiewicz7340 4 года назад +1

      @@KacperSieradziński Na pewno zostanę :) Czegoś takiego mi brakowało. Jest wiele tutoriali do Pythona jednak niewiele z nich jest tak treściwych. Już się nie mogę doczekać kolejnego 😏

    • @KacperSieradziński
      @KacperSieradziński 4 года назад

      @@dariuszradyszkiewicz7340 super! :)

  • @Mogiel666
    @Mogiel666 4 года назад +8

    Tematy automatyzacji zadań zawsze mile widziane :)

    • @KacperSieradziński
      @KacperSieradziński 4 года назад +8

      Kolejny temat na liście to discordowy bot, może być?

    • @Mogiel666
      @Mogiel666 4 года назад

      ​@@KacperSieradziński Jasne, zapowiada się ciekawie.

  • @TechMarketer
    @TechMarketer 4 года назад +1

    Bardzo fajny tutorial, wydaje mi się, że nie trzeba kombinować z import argv skoro tworząc tabelę można wykorzystać CREATE TABLE IF NOT EXISTS i to załatwi sprawę.Czekamy na kolejne odcinki - jest sztos :)

    • @KacperSieradziński
      @KacperSieradziński 4 года назад

      Taak, sporo takich rzeczy przychodzi mi zawsze do głowy po nagraniu :) Jeśli czekasz na więcej to zobacz też i mój kanał :) Pozdrawiam!

  • @pietrekt.807
    @pietrekt.807 4 года назад +1

    Bardz fajnie sie oglada, bardzo fajnie sie slucha. Pozdroooo

  • @maciejczebanyk4693
    @maciejczebanyk4693 4 года назад +1

    Świetna robota Kacper! Mega się Ciebie słucha :) (ogląda też)

    • @KacperSieradziński
      @KacperSieradziński 4 года назад

      Mocarzyk :D No Ciebie się tu nie spodziewałem :) Dzięki!

  • @tomaszsagan4672
    @tomaszsagan4672 2 года назад +1

    Super , dzięki! Łapka+subskrybcja :)

  • @jacekk9618
    @jacekk9618 3 года назад

    Lux

  • @bartoszwordweb4421
    @bartoszwordweb4421 2 года назад +1

    Cześć Kacper, na początku chciałbym Ci podziękować za ten film. Mega wiedza przekazana w bardzo przystępny sposób. Rób tego więcej! Mam jeszcze pytanie. Próbuje zastosować pewne rozwiązania na podstawie Twojego filmu i mam problem. Po zastosowaniu metody strip() część pustych pól zostaje usunięta, ale zostają mi również kolejno 2 puste wiersze poniżej. Czym to może być spowodowane?

    • @KacperSieradziński
      @KacperSieradziński 2 года назад +1

      Cześć Bartku! Mam więcej filmów u siebie na kanale :-) Natomiast jeśli chodzi o pytanie.. to najprościej byś wpadł do nas na Discord'a i pokazał to na żywo. Pomożemy :-) Link znajdziesz na stronie sieradzinski.pl 🙂

  • @decimus1447
    @decimus1447 3 года назад

    Super

  • @pawegalinski161
    @pawegalinski161 2 года назад +1

    Świetny filmik, dzięki Kacper.
    Dwa lata po premierze filmiku....mam pytanie. Buduję właśnie crawler, ale chciałbym uniknąć sytuacji, że będą mi się dublować rekordy w bazie. WIęc chciałbym sprawdzać czy scrapowana pozycja w bazie istnieje, jeżeli wszystkie pola są takie same jak w rekordzie już istniejącym to nie zapisywać go do bazy, jeżeli się różni to go zaktualizować. Jak mogę to ugryźć? :)

    • @KacperSieradziński
      @KacperSieradziński 2 года назад

      Najlepiej jest wyliczyć jakiś hash z tego co prawie na pewno będzie unikatowe.. np. tytuł + adres lub na przykład z adresu strony URL. Możesz też skorzystać z czegoś w stylu numer oferty :-) Trzeba sobie jakoś radzić..

  • @DonkingRKS
    @DonkingRKS 2 года назад

    Gdzie jest ten kurs Bartka CSS z udemy o którym Pan mówi w 1:23 ??

  • @KacperSieradziński
    @KacperSieradziński 4 года назад

    ⭐Zainteresowanych innymi moimi filmami odsyłam na kanał:

    📽️ dokodu.dev/youtube
    Przepraszam, że tak długo! Dajcie znać czy na przyszłość mam nagrywać krótsze :)

    • @melonio1974
      @melonio1974 4 года назад +3

      Dla mnie mogą być jeszcze dłuższe filmiki 🙂👍

    • @maxbenson1691
      @maxbenson1691 4 года назад +4

      Gdzie krótsze! Jeszcze dłuższe :)

    • @iskrzych
      @iskrzych 4 года назад +3

      52 minuty zleciało nie wiadomo kiedy. Dłuższe, dłuższe :)

    • @KacperSieradziński
      @KacperSieradziński 4 года назад

      To zapraszam też na mój kanał, wciśnijcie subskrybuj i dzwonek :)

  • @kamilcelin7626
    @kamilcelin7626 3 года назад +1

    Witam. Uczę się na Twoich filmikach :). Mam jednak problem. Chciałem pobrać datę (jako kolejną kolumnę), ale mam problem.
    Jeśli dodamy :
    location = footer.find_all ...
    To otrzymamy 2x "span" w którym jest nazwa miejscowości oraz czas dodania.
    Gdy w kodzie dodamy .get_text()
    To wyprintuje nam tylko nazwę miejscowości. NIE mogę dostać się do drugiego "span" żeby wydobyć date. Probowałem już kilka sposobów i nic. Może jakaś wskazówka ??

    • @KacperSieradziński
      @KacperSieradziński 3 года назад

      Hmm.. pobierz wszystkie spany, a potem powiedz, że interesuje Cie ten drugi..
      Ewentualnie uzyj pobierania za pomocą selektora CSS i od razu wskaż drugi. :)

    • @kamilcelin7626
      @kamilcelin7626 3 года назад

      @@KacperSieradziński wyskakuje mi bład, coś źle robię . A czy mogłbyś tu zapisać kod, w który powoduje wypisanie tego drugiego spanu ?

  • @jakubdobosz722
    @jakubdobosz722 4 года назад +8

    kapitalny odcinek, może teraz jakiś web framework?

  • @kacperp9622
    @kacperp9622 3 года назад

    Hej, mam problem nie mogę odpalać plików klikając w nie 2 razy. Zamiast tego muszę wchodzić w pychrama i tam go odpalać. Macie jakiś pomysł czemu tak się dzieję?

  • @enrikekasijas705
    @enrikekasijas705 2 года назад

    Jestem kompletnie zielony , ale mam mega ważne pytanie. Dotychczas robiłem sobie w pracy Webscrapping przez excela. Nie jestem informatykiem. Robię to bo mi ulatwia życie. Nasze strony dla wewnętrznych pracowników mają ważne informacje dla mnie. Okazało się przypadkiem że ta strona ma jakby alternatywny adres ... I tam nie ma żadnych kolorowych tabelek , zdjęć ...tylko same dane tak jak po wybraniu pokaż source code na zwykłej stronie np jak w tym filmiku. Pytanie czy jest jakiś sposób by znaleźć taki alternatywny adres strony który zawiera source code?

    • @enrikekasijas705
      @enrikekasijas705 2 года назад

      A drugie pytanie : czy dodatek Selenium o którym wspomniałeś to ten sam Selenium który można pobrać dla excela vba? I czy nie na żadnego ryzyka pobierając go i instalując ?

  • @Adroit931
    @Adroit931 3 года назад +1

    Hej, a hja zrobiłem scraper olx ktory pobiera dane o m2. W bloku try probuje sparsowac strone otodom jezeli sie nie uda to w bloku except parsuje strone z olx ;)

  • @omeklolek
    @omeklolek 2 года назад

    bardzo Cię proszę o pomoc. W momencie kiedy, próbuję użyć class_, wyświetla mi "no documentation found". Kompletnie nie mogę się z tym uporać. Pozdrawiam

    • @KacperSieradziński
      @KacperSieradziński 2 года назад

      Takie rzeczy to tylko na Discordzie :-) dokodu.dev/discord :)

  • @MrKor4k
    @MrKor4k 3 года назад

    Kacper, świetny film. Czy jest sens bawić się w asyncio i httpx, żeby przyspieszyć wykonywanie requestów, masz może o tym jakieś video?

    • @KacperSieradziński
      @KacperSieradziński 3 года назад

      Jeszcze nie mam, ale jeśli wrzucę to na mój kanał :)
      Z asynchronicznie ja jest jedną zabawa przy robieniu API. Film. Pyfestivalu :)

  • @puszkin2346
    @puszkin2346 4 года назад +2

    To nie jest czymś w rodzaju Selenium, którym także można ingerować w DOM strony czy to zupełnie inna bajka?

    • @KacperSieradziński
      @KacperSieradziński 4 года назад

      Cześć :) beautiful soup jest bardziej parserem, który pozwala na odczytanie HTMLa. Wyciągnięcie tego co nas interesuje. Zauważ, że reguest robiłem innym narzędziem.
      Natomiast Selenium jest bardziej emulacją całej przeglądarki. Służy głównie do pisania testów sprawdzających aplikację. Z jego pomocą możesz kliknąć tu, coś wpisać tam, potem wysłać i zobaczyć czy dany element się zapisał lub pobrać coś co się wyrenderowało. Trochę coś innego :)

    • @sexus2451
      @sexus2451 3 года назад +1

      @@KacperSieradziński Ale też w Selenium można pisać crowlery, tylko, że będzie to chyba nieco wolniejsze rozwiązanie, jeśli dobrze rozumiem.

    • @KacperSieradziński
      @KacperSieradziński 3 года назад

      @@sexus2451 dokładnie tak

  • @tediR4
    @tediR4 3 года назад

    czesc, mam pytanie, jak wchodzimy przez pythona na jakąś podstronę, np dane ogłoszenie w OLX, to czy wtedy wpływamy na ilość wyświetleń tego ogłoszenia ?

    • @KacperSieradziński
      @KacperSieradziński 3 года назад

      To zależy czy OLX nas zliczy czy nie. Zakładam, że większa szansa by to zrobić za pomocą Selenium. Mam film na kanale jemu poświęcony. Zapraszam.
      Raczej jeśli będziesz to robił "spamowi" to Cię zaczną filtrowac.

  • @FRANKWHITE1996
    @FRANKWHITE1996 4 года назад

    Fajne

  • @paulmonde6896
    @paulmonde6896 4 года назад +1

    Warto dodac (byc moze o tym wspomniales pozniej, ja ten komentarz pisze na poczatku filmiku), ze biblioteka Beautiful Soup idealnie nadaje sie rowniez do scrapingu ogromniastych plikow XML :)

    • @KacperSieradziński
      @KacperSieradziński 4 года назад +1

      Nie wspomniałem, ale dziękuję za uzupełnienie! Jest to absolutna racja :)

  • @szymon8563
    @szymon8563 4 года назад +4

    Mega! Może coś w stylu programu który rusza kursorem za nas? :D

    • @RL89pl
      @RL89pl 3 года назад +2

      Jest biblioteka do tego - Pyautogui

  • @armandryfyfinski9445
    @armandryfyfinski9445 2 года назад

    ostatnio olx zrobił refactoring możesz nagrać poradnik jak teraz to zrobić ?

  • @szymon8563
    @szymon8563 4 года назад +1

    Może też jakiś poradnik jak pobierać dane (jak w tym odcinku) tyle że z aplikacji na kompie, które nie dają domyślnie takiej możliwości (np. azymut/elewacje z programu Orbitron)

  • @robowojownik6415
    @robowojownik6415 4 года назад

    Samuraj wiadomo kiedy będzie english kurs ? ;D

    • @SamurajProgramowania
      @SamurajProgramowania  4 года назад +1

      W całym tym projekcie jest jeszcze jedno słabe ogniwo, ja :)

    • @KacperSieradziński
      @KacperSieradziński 4 года назад

      @@SamurajProgramowania A o który kurs chodzi? Twój czy Pythonowy? :D

    • @SamurajProgramowania
      @SamurajProgramowania  4 года назад

      @@KacperSieradziński Założyłem, że o mój kurs angielskiego dla wiecznie początkujących :)

  • @gron77
    @gron77 4 года назад

    nie moge tego zrobic w pycharmie :D .... skubany nie mimo zainstalowania biblioteki bs4 nie wykonuje polecenia from bs4 import Beautifulsoup
    już nie mam pomysłu dlaczego

    • @KacperSieradziński
      @KacperSieradziński 4 года назад

      To wpadaj na discorda :) discord.gg/6r4sbu5 Pomożemy :)

  • @BartekSport
    @BartekSport 4 года назад +2

    Kacper, a jak z legalnością takiego web scrapingu? Gdzieś czytałem, że jest to niezgodne z prawem ze względu na prawo autorskie itd.

    • @KacperSieradziński
      @KacperSieradziński 4 года назад +1

      Według regulaminu OLX zabronione jest przetwarzanie tych danych i ich dalsze udostępnianie. Generalnie wszystko zależy od tego co chcesz dalej z tymi danymi robić.

  • @gofermarcin
    @gofermarcin 4 года назад

    Był OLX to Allegro teraz. Ja nie dałem nim rady. Jakieś pomysły jak ich scrapować?

    • @KacperSieradziński
      @KacperSieradziński 4 года назад

      Wpadnij na discorda i zadaj pytanie tam. Nie bardzo wiem jak pomóc bez dodatkowych informacji :)

  • @2herzog
    @2herzog 3 года назад

    po co jest ta linijka z if len(argv)...?

    • @KacperSieradziński
      @KacperSieradziński 3 года назад

      Aby sprawdzić czy został przekazany argument w konsoli np python skrypt.py ARGUMENT

    • @2herzog
      @2herzog 3 года назад

      @@KacperSieradziński a dlaczego nie mozna po prostu uruchomić poprzez run w pycharmie?

    • @KacperSieradziński
      @KacperSieradziński 3 года назад

      @@2herzog bo jeśli chcesz przekazywać argumenty podczas uruchamiania to tak jest łatwiej :-) nie piszesz programów w Pythonie tylko po to by je uruchamiać w pycharmie :-)

    • @2herzog
      @2herzog 3 года назад

      @@KacperSieradziński dzieki za odpowiedzi

  • @patricius1509
    @patricius1509 2 года назад

    olx zrobił refactoring i teraz klasy są dynamicznie przydzielane do każdego wpisu inna klasa, trzeba trenować na innym przykładzie ^.^

  • @pawelmam3
    @pawelmam3 4 года назад +2

    Super odcinek !
    Ktoś zna osobę w Warszawie godna polecenia do pomocy w nauce programowania ale nie online lub jakieś praktyki ? Pozdrawiam

    • @KacperSieradziński
      @KacperSieradziński 4 года назад

      Proponuję napisać na grupach facebookowych PyWawy. Gdybyś szukał online to daj znać :)

    • @pawelmam3
      @pawelmam3 4 года назад

      Kacper Sieradziński dziękuje za odpowiedz.
      Pozdrawiam

  • @Bazookavrt1989
    @Bazookavrt1989 4 года назад

    Zainteresowal mnie ten film gdyz chce stworzyc sobie strone ktora bedzie pobierala dane z innej i odpowiednio grupowala. Ale jak widze jakies programy z ktorym nie mialem stycznosci to chyba tego nie ogarne:/ A niestety darmowe szabloy i ich funkcje na to (tak mi sie wydaje )nie pozwalaja:/

  • @Ogromnia2
    @Ogromnia2 3 года назад

    Czy ktos moglby poratowac kodem jak dane zamienic na dataframe w pandas zamiast na tabele w Sqllite3 ?

    • @KacperSieradziński
      @KacperSieradziński 3 года назад

      Bardzo fajny pomysł! Przemyślę, dzięki!

    • @MsSsloth1
      @MsSsloth1 3 года назад

      pandas.read_sql nie wystarczy ??

  • @gofermarcin
    @gofermarcin 4 года назад

    A może teraz coś w stylu deep learning. Napisać skrypt, żeby uczył się sam wyszukiwać ofert z podanych stron. :D

    • @michalbotor
      @michalbotor 4 года назад

      klasyk klasyków to sieć neuronowa, która próbuje przewidzieć cenę mieszkania. bo to co mówisz to do sieci neuronowych raczej nie pasuje. ;)

  • @ZieluPawel
    @ZieluPawel 2 года назад +2

    juz chyba nie ma klasy 'offer-wrapper' ;((

    • @dawid9977
      @dawid9977 2 года назад

      Jak to teraz rozwiazac :(

  • @michah3956
    @michah3956 4 года назад

    Może odcinek o Selenium WebDriver w celu Web Scrapingu.

    • @KacperSieradziński
      @KacperSieradziński 3 года назад

      Myślałem o tym, może coś nagram :) masz pomysł odn. serwisu który mógłbym scrapowac? :)

    • @michah3956
      @michah3956 3 года назад +1

      @@KacperSieradziński Myślałem o allegro i aplikacji śledzącej licytację i przebijającej oferty ;)

  • @iskrzych
    @iskrzych 4 года назад +3

    Fajnie by było, jakby kod z lekcji byłby gdzieś udostępniony np. na gist.

    • @KacperSieradziński
      @KacperSieradziński 4 года назад +3

      pastebin.com/aiFc8Zhj Proszę, gista wrzucę za kilka chwil.

  • @hubertos557
    @hubertos557 3 года назад

    Dodaj link w opisie do Kacpra, może już wystartował

  • @mateuszbielenda9642
    @mateuszbielenda9642 3 года назад

    Zobaczcie teraz jakie są ceny po prawie półtora roku :D

  • @rajkonkret
    @rajkonkret 4 года назад

    nr tel pobierz z olx ;)

    • @KacperSieradziński
      @KacperSieradziński 4 года назад +1

      Ciekawe wyzwanie, Seleniowe :) pomyśle :)

    • @rajkonkret
      @rajkonkret 4 года назад +1

      @@KacperSieradziński zrobiłem właśnie z selenium. Ciekawe czy da się inaczej

    • @KacperSieradziński
      @KacperSieradziński 4 года назад

      @@rajkonkret wszystko czego nie ma w źródle strony umiem pobrać tylko Selenium. Możliwe, że są inne metody, nie wiem :)