Miałem jedną stronę, która miała w sumie na sobie 1600 linków.
Było to rozmieszczone na podstronach, gdzie każda miała 50 linków (więc trzeba było 32 razy przejść na nową stronę żeby zobaczyć wszystkie linki). Problem w tym że te linki to było zdjęcie albo film, i nie dało się wyekstraktować samych filmów.
Zrobiłem 3 skrypty w pythonie:
-pierwszy wyciągnął z każdej z tych podstron wszystkie linki, i umieścił je w jednym pliku
-drugi skrypt wziął dane z tego pliku, wszedł pod każdy link, sprawdził które z podstron zawierają filmy, i zapisał linki do pobrania filmów do kolejnego pliku
-Trzeci skrypt po prostu pobrał wszystkie filmy i umieścił je w jednym folderze
Wydaje mi sie że to jest pipeline, bo każdy kolejny skrypt posiłkował się wynikiem wykonania poprzedniego skryptu.
Do CV chyba tego nie wpisze co prawda, bo filmy które wyciągałem są z gatunku postów #jaszczomp i rekruter może sie krzywo patrzeć ( ͡° ͜ʖ ͡°)
Do samego zadania użyłem pythona i modułów requerts, threading oraz BeautifulSoup4. Czy jest do tego inne narzędzie, którego mógłbym sie nauczyć żeby sie przydało w pracy data engineera?
#datascience #programowanie
Czekaj czekaj, masowo sciagneles pornole? Pokaż no ten skrypt misiaczku
@Cybulion jakość kodu leży, ale pisałem na szybko z oczywistych przyczyn xD
@redve XD
Ważne że działa
@redve coomer.su XDDDDDDD
Imagine, że napisałem w node.js cały skrypt na 2k linii kodu który służy do pobierania i archiwizowania twórców według nazwy i odpalałem go co jakiś czas i automatycznie sprawdzał czy pojawiło się coś nowego od ostatniego uruchomienia i zaciągał nowe wrzuty na dysk.
Znudziło mi się gdy zaczęło mi się kończyć miejsce na dysku.
P.S. coomer i kemono mają publiczne i darmowe API więc nie musisz scrapować strony.
P.S.2 są na githubie gotowe programy i skrypty do pobierania z tej strony nie musisz się męczyć z pisaniem własnego, ja to bardziej dla sportu robiłem xd
EDIT: Przypomniałeś mi w sumie, że miałem ten skrypt kiedyś dokończyć, dopracować i wrzucić na alternatywne konto na githubie xD
@redve data pipeline for (paralel/sequential) online video processing
PornHub to akurat firma którą bardzo bym chciał mieć w CV, więc nie wiem czemu miałbyś nie opowiadać o projekcie hobbystycznym ( ͡° ͜ʖ ͡°)
@wombatDaiquiri to nie był pornhub, tylko spiracone filmiki onlyfansiary ( ͡° ͜ʖ ͡°)
@redve Czysta ciekawość, której? Ciekawi mnie czy ja i moje uzależnienie od porno ją kojarzy xD.
Komentarz usunięty
@redve A to ją jak najbardziej kojarzę, ma kilka fajnych filmów na PH xD.
@redve - jak juz używasz requests to polecamy użycie asyncio: https://www.hejto.pl/wpis/kod-na-uruchamianie-funkcji-synchronicznych-w-pythonie-w-asynchroniczny-sposob-i
A tak w ogóle to polecam od razu używać modułów asynchronicznych jak aiohttp.
@koszotorobur asyncio spoko, ale aiohttp wydaje sie bardziej pod serwery a nie zwykły scrape
@redve - to jest też klient:
Asynchronous HTTP Client/Server for asyncio and Python.
Tu masz przykład jak używać aiohttp z beautifulsoup4: https://www.zenrows.com/blog/asynchronous-web-scraping-python#parse-with-data-with-beautifulsoup
@redve httrack robi takie rzeczy, jak chcesz miec offline kopie stron.
Cóż, zaczynałem od takich pierdół w perlu, bo można było dzikie regexy do tego pisać.
Jako devops, to zwykle bash i dodatki, np. jq
@globalbus - aby użyć jq, które służy do parsowania JSONa, to trzeba wydobywać rzeczy z jakiegoś API które zwraca JSONa - Op zdaje się wydobywał rzeczy z HTMLa.
Notabene jq to świetne narzędzie, które stało się właściwie standardem do parsowania JSONa z CLI (i nie tylko na Linuksie) i do szybkich rzeczy jest niezastąpione - niemniej do poważniejszych rzeczy gdy kod staje się bardziej skomplikowany i ma powyżej około 200 linii to sprawny DevOps najczęściej użyje Pythona.
@koszotorobur jak kod staje się skomplikowany, to przestaje to być robota dla pojedynczego devopsa
Python to używam tylko do pisania wtyczek do nagiosa. Plus ansible używa pod spodem.
@globalbus - pojedynczy DevOps to może w jakiejś małej firmie - albo dopiero jak dział startuje w korpo - wtedy to wręcz musi myśleć o innych ludziach którzy całe to gówno po nim przejmą i będą musieli dalej utrzymywać. Ale wtedy to przede wszystkim musi myśleć o sobie za kilka miesięcy by nie deszyfrować swoich spaghetti shell skryptów pisanych pod jednego taska, które się rozrosły - więc w takiej sytuacji Python jest wręcz niezbędny - i mówię tutaj przede wszystkim ze swojego doświadczenia jako ktoś kto bardzo nielubił Pythona kilkanaście lat temu ale zaczął go doceniać gdy musiał sam budować DevOpsowe teamy od podstaw.
Nagiosa to ja już nie używałem od lat - chociaż to nie był taki zły tool - niemniej wiele firm przeszło na SaaS typu Datadog - i ja z tego powodu wcale nie płaczę.
Ansible to świetne i potężne narzędzie - do momentu jak ktoś jego nie używa jak młotka widząc wszędzie gwoździe - wtedy niektórzy zaczynają niezłe potworki w nim tworzyć - zamiast używać narzędzi, które się lepiej do pewnych rzeczy nadają (jak choćby Terraform).
@koszotorobur ansible to kwestia podejścia. Jak masz całą firmę na redhacie, to nie stawiasz terraforma, tylko manageiq, a ono sobie wywołuje playbooki.
Ma to pewną zaletę, admini są po redhatowych szkoleniach, to nie musisz ludzi uczyć obsługiwać nowe młotki.
@globalbus - całe moje korpo stało do tej pory na Red Hacie - ale coś się mojemu korpo obecnie odwidziało i idzie troszkę w inną stronę (zostawiając jedynie RHELa jako OS do serwerów w colo). Na szczęście mamy chociaż Ansible Tower i mamy OpenShift więc zanim nam to zaorają to zajmie kilka lat.
Ale z korpo jest zawsze ten problem, że wierzą za bardzo vendorom i robią "strategiczne" deale na lata (bo przecież się tak oszcędza pieniądze
No ale ja i mój zespół jesteśmy elastyczni - jakąkolwiek technologie na nas wymuszą - poradzimy sobie bo to nie nasze pierwsze rodeo
Zaloguj się aby komentować