@Decay: No właśnie chciałem zrobić w miarę uniwersalną podpieprzajkę, ale zapomniałem, że teraz wszędzie nasrane JSem i większość rzeczy dzieje się pod wpływem interakcji użytkownika i pierwotny HTML tego nie zawiera.
@Khaine: jeszcze mam taki pomysł: scrapowanie obrazów z google/binga. W wyszukiwarce obrazów wpisujesz site:domena.tld i dostajesz listę obrazów, miniaturki możesz wywalić za pomocą filtrowania rozmiaru obrazów. Możesz też określić zakres dat, z których chcesz obrazki. Oczywiście musiałbyś pobrać sobie jakiś słownik i do zapytania dołączać słówka żeby otrzymać jak największą liczbę wyników(bo domyślnie chyba są jakieś ograniczenia).
No i jeżeli robiłbyś to bez API to zapytania do google wysyłaj +/-
@Khaine: Mógłbyś kombinować obchodząc popularne skrypty do lazy loading, sprawdzając który strona używa i pisząc swego rodzaju adapater co będzie je adekwatnie pobierał.
@xetrov: Ja się na JSie nie znam, bo bym tego pewnie nawet nie tykał w C# jakbym się znał. Ale tak czuję, że jak coś ma magiczne furtki to raczej JS. W jaki sposób miałoby to działać?
@Decay: Gra niewarta świeczki raczej, szybciej będzie zrobić na stronie prawoklik -> zbadaj. A tu chodziło właśnie o pominięcie kopania w kodzie źródłowym, tylko wdupcenie linka i naciśnięcie przycisku - żeby
@Khaine: jak to? Piszesz automat, binga można scrapować co kilka sekund, google co te 60 sekund, jednorazowo dostajesz chyba kilkadziesiąt obrazów. Chcesz mi powiedzieć, że jesteś w stanie siedzieć 24/7 przed kompem i wyciągać obrazki z kodu? I do tego zrobisz to wydajniej w 60 sekund, niż automat? ( ͡°͜ʖ͡°)
@Decay: Niee, zwykle chodzi o wywleczenie 1-5 obrazków z konkretnej strony (ale nie wiadomo jakiej z góry), bo są do czegoś potrzebne. Nie potrzebuję ściągać całego śmietnika ze strony, nawet miałem przygotowane filtrowanie po rozmiarze (niestety nie każdy tag img ma rozmiar w sobie) żeby mi jakichś pypków nie ściągał.
@Khaine: aaa, rozmiar możesz sprawdzać bezpośrednio po pobraniu, zapisz z url do bitmapy i tak weryfikuj, bo z tagów nie koniecznie musi się zgadzać z faktycznym rozmiarem.
Nie jestem specjalistą, ale jak chcesz to spróbuję pomóc. Napisz na pw o co chodzi, albo tutaj jeżeli to nie tajemnica.
a się na JSie nie znam, bo bym tego pewnie nawet nie tykał w C# jakbym się znał. Ale tak czuję, że jak coś ma magiczne furtki to raczej JS. W jaki sposób miałoby to działać?
@Khaine: nie wiem jak w C# bo go nie znam, ale zakładam, że same zasady są takie same, zresztą widzę że jest wrapper na C#. Generalnie działa to tak, że odpalasz przeglądarkę (PhantomJS to
@Decay: A jaka tam tajemnica, różowemu czasem były potrzebne zdjęcia do wrzucenia na stronę w asortyment, ze strony producenta czy coś, to stwierdziłem że spróbuję coś urzeźbić, bo to ja potem kopałem łopatką w tym HTMLu pod F12 żeby te linki wyciągać xD
No i wyciągam, ale nie te rozmiary o które mi chodzi - czyli nie te największe, które wchodzą na stronę dopiero po interakcji z użytkownikiem.
@Khaine: jeżeli miałbyś pewność, że na każdej stronie po wczytaniu zawartości te linki do obrazków są w kodzie to bez problemu bierzesz pomysł xetrova, tym sposobem wyciągasz kod, wyciągasz wszystkie odnośniki, filtrujesz te od obrazków, a później lecisz po rozmiarach. webbrowser powinien sobie poradzić z wyciągnięciem zrenderowanego kodu.
A jeżeli obrazki wczytuje dynamicznie, to chyba nie mam pomysłu. Ewentualnie mógłbyś znaleźć jakąś bazę produktów, coś jak ceneo i napisać scraper
@Khaine: takie potworki jak nodejs pewnie znasz chociaż z zasady działania ( ͡°͜ʖ͡°) To wyobraź sobie, że to coś podobnego, tak jakby emulujesz przeglądarkę i możesz oskryptować zachowanie tego Twojego pseudousera, daje to sporo możliwości w interakcji z asynchronicznymi requestami i innymi wynalazkami nowoczesnego frontu.
@Decay: to co robiłem działało mniej więcej w ten sposób (było kilkanaście dość podobnych layoutów do sparsowania), co nie siedziało w htmlu (tu jest banalnie, byle nie regexpem oczywiście) to dało się jakoś zrobić jsowym odpowiednikiem (nie pamiętam jak, ale tak jak pisałem - jak ja to zrobiłem to nie mogło być trudne ( ͡°͜ʖ͡°)) i w efekcie miałem coś z 80% udanych pobrań,
jeżeli miałbyś pewność, że na każdej stronie po wczytaniu zawartości te linki do obrazków są w kodzie to bez problemu
@Decay: To już działa. Wybebesza wszystko co ma tylko <img i src= z jakimś ludzkim formatem .jpg, .jpeg, .png czy cokolwiek bym chciał - pod warunkiem, że znajduje się w źródłowym HTML (tym wyciągniętym z linku). Problem jest właśnie tam, gdzie ten obrazek ładuje się w pełnej formie dopiero jak klikniesz
Natomiast stąd już mi nie zaciągnie tego rozmiaru co się pojawi po kliknięciu na te widelce. Jego widać nie ma w pierwotnym HTMLu, pojawia się później. To zresztą widać, bo wystarczy kliknąć na tym "Zbadaj" i możemy sobie w czasie rzeczywistym obserwować jak się ta sekcja pojawia w kodzie po kliku.
A do pojedynczych stron to bez problemu da się to wyciągnąć z kodu pewnie.
site:domena.tldi dostajesz listę obrazów, miniaturki możesz wywalić za pomocą filtrowania rozmiaru obrazów. Możesz też określić zakres dat, z których chcesz obrazki.Oczywiście musiałbyś pobrać sobie jakiś słownik i do zapytania dołączać słówka żeby otrzymać jak największą liczbę wyników(bo domyślnie chyba są jakieś ograniczenia).
No i jeżeli robiłbyś to bez API to zapytania do google wysyłaj +/-
Chociaż łatwiej przyjdzie ci to kombinując z https://pptr.dev/
@Decay: Gra niewarta świeczki raczej, szybciej będzie zrobić na stronie prawoklik -> zbadaj. A tu chodziło właśnie o pominięcie kopania w kodzie źródłowym, tylko wdupcenie linka i naciśnięcie przycisku - żeby
Nie jestem specjalistą, ale jak chcesz to spróbuję pomóc. Napisz na pw o co chodzi, albo tutaj jeżeli to nie tajemnica.
@Khaine: nie wiem jak w C# bo go nie znam, ale zakładam, że same zasady są takie same, zresztą widzę że jest wrapper na C#. Generalnie działa to tak, że odpalasz przeglądarkę (PhantomJS to
No i wyciągam, ale nie te rozmiary o które mi chodzi - czyli nie te największe, które wchodzą na stronę dopiero po interakcji z użytkownikiem.
Nic ważnego ogólnie, ale
webbrowser powinien sobie poradzić z wyciągnięciem zrenderowanego kodu.
A jeżeli obrazki wczytuje dynamicznie, to chyba nie mam pomysłu. Ewentualnie mógłbyś znaleźć jakąś bazę produktów, coś jak ceneo i napisać scraper
@Decay: To już działa. Wybebesza wszystko co ma tylko <img i src= z jakimś ludzkim formatem .jpg, .jpeg, .png czy cokolwiek bym chciał - pod warunkiem, że znajduje się w źródłowym HTML (tym wyciągniętym z linku). Problem jest właśnie tam, gdzie ten obrazek ładuje się w pełnej formie dopiero jak klikniesz
https://www.nakrywamy.pl/gerlach-celestia-sztucce-komplet-68-el-pudelko-12-os-polysk-gratis-torba-prezentowa
Natomiast stąd już mi nie zaciągnie tego rozmiaru co się pojawi po kliknięciu na te widelce. Jego widać nie ma w pierwotnym HTMLu, pojawia się później. To zresztą widać, bo wystarczy kliknąć na tym "Zbadaj" i możemy sobie w czasie rzeczywistym obserwować jak się ta sekcja pojawia w kodzie po kliku.
https://www.nakrywamy.pl/images/items/18347/gerlach-celestia-68-opakowanie-2_big.png
Jeżeli o te chodzi to one tam są tylko w tagach a. Jak pisałem żeby scrapować linki to chodziło mi o scrapowanie wszystkiego co zaczyna się na http://. W sumie tutaj też może być problem tylko, że z wyciąganiem linków hmm
A czekaj, zapomniałem wyłączyć javascripta, to chwila.
Dobra, bez js też tam linki są w kodzie. Czyli albo scrapujesz wszystkie linki,