Autor Wątek: Ściąganie galerii zdjęć  (Przeczytany 11423 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline jmvh

  • Weteran
  • *****
  • Wiadomości: 3168
Odp: Ściąganie galerii zdjęć
« Odpowiedź #15 dnia: Grudzień 29, 2010, 11:13 »
Dla obliczeń przyjmijmy szybsze - 256 kb/s.W przeliczeniu to 32 KB na sekundę, czyli ok. 1,9 MB na minutę. Jeśli jedno zdjęcie miało (teraz trochę to zmniejszyłeś) ~200 KB to przy 100 zdjęciach masz czas oczekiwania na stronę 10 minut...

Poprawka, masa strony wynosiła ok. 8 MB, czyli trochę ponad 4 minuty (przy 256 kbps). Jezu, teraz chwalimy się czasem ładowania strony, a potem może np. up-time?  ;D

wget potrafi też ściągać rekursywnie całe strony razem z podkatalogami lub tylko wybrane typy plików np:
Cytuj
wget -A jpg -r -l 3 http://www.nivnac.co.uk/mer/
Choć nie wiem czy to zawsze działa. Czasami w przypadku niektórych galerii można użyć curl'a do zczytania źródła html i odfiltrowania za pomocą takich programików jak grep, awk, sed linków do zdjęć. Całość oczywiście w skrypcie np: bash.

Niestety, nie działa zawsze z powodów które wymieniłem wyżej, wystarczy samemu sprawdzić np.
Cytuj
wget -A jpg -r -l 3 --spider http://spaceflight.nasa.gov/gallery/ 2>&1 | grep "jpg" | grep "http" | awk '{print $3}'

Jest też problem z galeriami opierającymi się na działaniu skryptów interpretowanych po stronie przeglądarki, kiedy linków w html-u nie uświadczysz. Pobiera też mnóstwo miniaturek (jeśli takowe są), tudzież graficznych elementów samej strony. Dawno żadnych skryptów nie pisałem, no cóż, ziajże do mana i spróbuje pokombinować.

Edit: Zauważyłem, że co do strony nivnac.co.uk dobry efekt daje zamienienie grep "jpg" na grep "full.jpg", bowiem tak nazywane są tam największe pliki.

Edit2: Niestety, przypomnienie sobie tego czy owego w wypadku galerii KSC i HiRISE nie zdało egzaminu. Jako-tako udał się nalot na Great Images in NASA, lista zrobiona "automatycznie", zdjęcia na liście jak leci, bez opisów, ale przynajmniej te większe, 1320 linków, to około 6 GB. Pliku nie załączam, bo wyszedł straszy misz-masz i czasami po prostu nie wiadomo co jest na niektórych fotografiach, także takie listy można generować w ten sposób ale nie koniecznie wychodzi coś sensownego.  A załącznik to zdjęcia z 9 nocnych startów STS (457 MB) wraz z "instalatorem" (wiem, mógłbym go zrobić lepiej), i tu moja prośba o przetestowanie i stwierdzenie, czy takie coś można strawić.
« Ostatnia zmiana: Grudzień 29, 2010, 17:15 wysłana przez jmvh »

Offline jmvh

  • Weteran
  • *****
  • Wiadomości: 3168
Odp: Ściąganie galerii zdjęć
« Odpowiedź #16 dnia: Grudzień 29, 2010, 19:24 »
Muszę przyznać, że odzew jaki wywołały te listy mnie zaskoczył, nie sądziłem, że komukolwiek poza mną to może być przydatne. W takim wypadku prezentuje kolejny "twór", wersja mocno robocza, tym razem skrypt ma sam generować sobie katalogi, plik z url i pobierać odpowiednie zdjęcia. Jest to efekt kombinowanie z stroną (akurat się nadaje ze względu na budowę).
« Ostatnia zmiana: Grudzień 29, 2010, 19:26 wysłana przez jmvh »

axion

  • Gość
Odp: Ściąganie galerii zdjęć
« Odpowiedź #17 dnia: Grudzień 29, 2010, 23:15 »
Czy może być przydatne? To jest niezbędne!  ;D Na razie przetestowałem "sk" i działania świetnie.

Z mojej strony udostępniam polecenie, które załatwia za jednym zamachem na chwilę obecną 13742 zdjęć z JPL Photojournal. Po zakończonym działaniu wystarczy skasować dwa pliki i mamy czystą galerię.

wget -r http://photojournal.jpl.nasa.gov/jpeg/

Offline Air Q

  • Weteran
  • *****
  • Wiadomości: 1895
Odp: Ściąganie galerii zdjęć
« Odpowiedź #18 dnia: Grudzień 29, 2010, 23:31 »
..i tu moja prośba o przetestowanie i stwierdzenie, czy takie coś można strawić.
Działa spoko :) Choć zamiast przekazywania obecnego położenia jako paramatru "$1" można dać zmienną "$PWD" która jako wartość przyjmuje obecne położenie. Jeszcze prościej można to zrobić korzystając ze ścieżki względnej i powrotu do katalogu wyżej:
Cytuj
#!/bin/bash
cd ./STS-102
wget -i STS-102
cd ..
Warto też wspomnieć, że to nie zadziała pod łindołsem :P Trochę się wkręciłem i zacząłem pisać skrypt który stworzy listę zdjęć z galerii spaceflight.nasa.gov a konkretniej misje wahadłowców. Niestety zauważyłem, że nie ma tam niektórych misji.



 
"One could write a history of science in reverse by assembling the solemn pronouncements of highest authority about what could not be done and could never happen."
http://qt.exploratorium.edu/mars/opportunity
Sprawdź SOL: http://www.greuti.ch/oppy/html/filenames_ltst.htm

Polskie Forum Astronautyczne

Odp: Ściąganie galerii zdjęć
« Odpowiedź #18 dnia: Grudzień 29, 2010, 23:31 »

Offline jmvh

  • Weteran
  • *****
  • Wiadomości: 3168
Odp: Ściąganie galerii zdjęć
« Odpowiedź #19 dnia: Grudzień 29, 2010, 23:44 »
Photojournal wyświetla katalog, miło  ;) Ja się zastanawiam jak przejść te skryptowe galerie, np. , ma ktoś pomysł? Międzyczasie skrobnąłem inny skrypcik, pobierający zdjęcia z lądowań u Edwarda (misje: 1,76,92,98,100,111,114,117,126) z bardziej html-owego źródła, łącznie 588 MB. Zmieniłem rozszerzenie na txt bo takie przyjmuje forum, traktować jak te z grin.zip.

Choć zamiast przekazywania obecnego położenia jako paramatru "$1" można dać zmienną "$PWD" która jako wartość przyjmuje obecne położenie. Jeszcze prościej można to zrobić korzystając ze ścieżki względnej i powrotu do katalogu wyżej:

Ale co jak znajdujesz się w home, a podałeś bezwzględną ścieżkę do pliku sk.sh, który jest gdzieś indziej? Zastanawiałem się nad $PWD, ale za pierwszym razem to nie zadziałało z właśnie takiego powodu (a raczej nieuwagi), skrypt rozpoczął działanie na zupełnie innej partcji.

Trochę się wkręciłem i zacząłem pisać skrypt który stworzy listę zdjęć z galerii spaceflight.nasa.gov a konkretniej misje wahadłowców. Niestety zauważyłem, że nie ma tam niektórych misji.

Możesz jaśniej jak chciałeś to zrobić?
« Ostatnia zmiana: Grudzień 29, 2010, 23:55 wysłana przez jmvh »

Offline Air Q

  • Weteran
  • *****
  • Wiadomości: 1895
Odp: Ściąganie galerii zdjęć
« Odpowiedź #20 dnia: Grudzień 30, 2010, 00:10 »
Ale co jak znajdujesz się w home, a podałeś bezwzględną ścieżkę do pliku sk.sh, który jest gdzieś indziej? Zastanawiałem się nad $PWD, ale za pierwszym razem to nie zadziałało z właśnie takiego powodu (a raczej nieuwagi), skrypt rozpoczął działanie na zupełnie innej partcji.
Ja zawsze uruchamiam skrypty z poziomu katalogu w którym się znajduje (chyba, że wyeksportuje do zmiennej PATH), więc nie pomyślałem aby go uruchamiać z innego katalogu.
Cytat: jmvh
Możesz jaśniej jak chciałeś to zrobić?
Podstrony ze zdjęciami mają taką strukturę:
http://spaceflight.nasa.gov/gallery/images/shuttle/sts-XXX/ndxpageX.html
więc można w zagnieżdżonych pętlach przelecieć po wszystkich misjach "sts-XXX" oraz kolejnych stronach ze zdjęciami "ndxpageX".

W tym drugim przypadku filtruje "ndxpageX.html" tak aby zczytać linki prowadzące do podstron które zawierają linki względne do zdjęć np:
http://spaceflight.nasa.gov/gallery/images/shuttle/sts-93/html/s99_03805.html
tutaj ponownie filtruje tworząc już ostateczne linki do zdjęć lores,med,hires. Korzystam głównie z curl,awk,sed,grep.

"One could write a history of science in reverse by assembling the solemn pronouncements of highest authority about what could not be done and could never happen."
http://qt.exploratorium.edu/mars/opportunity
Sprawdź SOL: http://www.greuti.ch/oppy/html/filenames_ltst.htm

Offline jmvh

  • Weteran
  • *****
  • Wiadomości: 3168
Odp: Ściąganie galerii zdjęć
« Odpowiedź #21 dnia: Grudzień 30, 2010, 00:12 »
Bardziej mi chodziło o kod :P

Offline Air Q

  • Weteran
  • *****
  • Wiadomości: 1895
Odp: Ściąganie galerii zdjęć
« Odpowiedź #22 dnia: Grudzień 30, 2010, 00:19 »
Bardziej mi chodziło o kod :P
Jak skończę to wrzuce :P
"One could write a history of science in reverse by assembling the solemn pronouncements of highest authority about what could not be done and could never happen."
http://qt.exploratorium.edu/mars/opportunity
Sprawdź SOL: http://www.greuti.ch/oppy/html/filenames_ltst.htm

Offline jmvh

  • Weteran
  • *****
  • Wiadomości: 3168
Odp: Ściąganie galerii zdjęć
« Odpowiedź #23 dnia: Grudzień 30, 2010, 00:39 »
Bardziej mi chodziło o kod :P
Jak skończę to wrzuce :P
Tyle, że ja też się chce czegoś nauczyć :P Na kolanie skleciłem takie coś (dotąd przetestowałem tylko na STS-7):

#!/bin/bash
mkdir $2/sts-$1
cd $2/sts-$1
wget -A jpg -r -l 3 --spider http://spaceflight1.nasa.gov/gallery/images/shuttle/sts-$1/ndxpage1.html 2>&1 | grep "jpg" | grep "http" | grep "hires" | awk '{print $3}' > url
wget  -T 60 -i url

Edit: i na STS-27
« Ostatnia zmiana: Grudzień 30, 2010, 00:44 wysłana przez jmvh »

axion

  • Gość
Odp: Ściąganie galerii zdjęć
« Odpowiedź #24 dnia: Grudzień 30, 2010, 00:48 »
Zauważyłem dziwną rzecz robiąc skrypt (w celach testowych) dla Photojournal. Ostatecznie można załatwić go jednym poleceniem wget z opcją rekurencji lecz postanowiłem pobawić się w pętle i warunki. Skrypt wyszedł nie najgorzej ale wykonując go - po pobraniu kilku plików, zatrzymuje się na oczekiwaniu na odpowiedź z HTTP. Czyżby jakieś zabezpieczenia po stronie serwera? Dziwne, bo "wget -r" nie ma najmniejszych problemów.

A może warto utworzyć małą listę galerii do rozgryzienia?

Offline jmvh

  • Weteran
  • *****
  • Wiadomości: 3168
Odp: Ściąganie galerii zdjęć
« Odpowiedź #25 dnia: Grudzień 30, 2010, 00:56 »
A może warto utworzyć małą listę galerii do rozgryzienia?

To jest dobra idea, na początek proponuje wszystkie oparte na javascripcie z nasa.gov. ;) Też muszę się pobawić pętlami, testowo zrobiłem kilka i stwierdziłem, że nie wiele pamiętam :(

Offline Air Q

  • Weteran
  • *****
  • Wiadomości: 1895
Odp: Ściąganie galerii zdjęć
« Odpowiedź #26 dnia: Grudzień 30, 2010, 07:41 »
Dwa pliki :)

sts.zip - zawiera linki ze zdjęciami dla misji wahadłowców. Struktura katalogów jest następująca:
Cytuj
sts/sts-XXX/{lores,hires}
"XXX" to numer misji, "lores" i "hires" to katalog w którym znajdują się linki do zdjęć o małej i dużej rozdzielczości odpowiednio. We wszystkich katalogach linki są zapisane w pliku "photo_links.txt". Aby sobie ściągnąć dane zdjęcia należy wejść do odpowiedniego katalogu ze wspomnianym plikiem i uruchomić wget'a:
Cytuj
wget -i photo_links.txt
Brakuje kilku misji ponieważ:
-na stronie spaceflight.nasa.gov ich nie ma
-zapomniałem wziąć pod uwagę numerację typu STS-51L (numer + litera). Ale na tej stronie jest tylko jedna taka misja tj. STS-61C

script.zip - w archiwum znajduje się skrypt w bash'u którym wygenerowałem powyższą listę. Skrypt należy uruchomić tam gdzie się aktualnie znajdujemy:
Cytuj
./script.sh


Nie sprawdzałem ale może po drobnych korektach podobnie można wygenerować pozostałe listy linków z galerii na spaceflight.nasa.gov tj. Ekspedycje, Apollo itd. Poza tym fajnie by było zapisywać też w jakiś sensowny sposób opis zdjęcia.
"One could write a history of science in reverse by assembling the solemn pronouncements of highest authority about what could not be done and could never happen."
http://qt.exploratorium.edu/mars/opportunity
Sprawdź SOL: http://www.greuti.ch/oppy/html/filenames_ltst.htm

Offline jmvh

  • Weteran
  • *****
  • Wiadomości: 3168
Odp: Ściąganie galerii zdjęć
« Odpowiedź #27 dnia: Grudzień 30, 2010, 12:00 »
Z STS-61C są tylko dwa zdjęcia. Skrypt po modyfikacjach działa bez problemu na Apollo i Gemini, kombinuje nad Ekspedycjami.

axion

  • Gość
Odp: Ściąganie galerii zdjęć
« Odpowiedź #28 dnia: Grudzień 30, 2010, 15:17 »
Dzięki za pliki. Chyba już niedługo będę musiał archiwizować te zdjęcia na płytach DVD albo zainwestować w drugi dysk twardy. Bo strach pomyśleć gdyby przepadły przy jakiejś awarii. Mówi się, że są dwa typy ludzi: ci którzy robią kopię zapasową i ci, którzy będą robić kopię zapasową.  :)

Przypominam tylko że jeśli ktoś pobiera pliki z Photojournal, to może przerwać w dowolnym momencie a później ponownie odpalić polecenie z opcją "-nc". Skutkiem tego jest ominięcie pobierania wszystkich już pobranych plików.
« Ostatnia zmiana: Grudzień 30, 2010, 17:24 wysłana przez axion »

Offline jmvh

  • Weteran
  • *****
  • Wiadomości: 3168
Odp: Ściąganie galerii zdjęć
« Odpowiedź #29 dnia: Grudzień 30, 2010, 18:16 »
Niestety, nie udało mi się przerobić skryptu Air Q dla Ekspedycji, musiałem napisać własny, trochę bardziej prymitywny. Powinien działać, puszcze go teraz wolno, a jak skończy wstawię wynik za drugi załącznik. No chyba, że nie będzie działać.

Polskie Forum Astronautyczne

Odp: Ściąganie galerii zdjęć
« Odpowiedź #29 dnia: Grudzień 30, 2010, 18:16 »