Zapisywanie każdego obrazka ze strony

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
konert
Piegowaty Guziec
Piegowaty Guziec
Posty: 12
Rejestracja: 25 mar 2009, 22:24
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: GNOME

Zapisywanie każdego obrazka ze strony

Post autor: konert »

Witam, czy da się napisać skrypt w najlepiej w bashu, który zapisywałby wszystkie obrazki z jednej wybranej strony internetowej?
sunset
Piegowaty Guziec
Piegowaty Guziec
Posty: 14
Rejestracja: 18 lut 2007, 12:06
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Zapisywanie każdego obrazka ze strony

Post autor: sunset »

Nie wiem czy Cie to zainteresuje ale istnieje wtyczka do FF - DownThemAll! - przy jej pomocy mozna pobrac wszystkie obrazki z danej strony, wystarczy ustawic tylko odpowiedni filtr ;)

A jesli chodzi o skrypt w bashu to pewnie sie da zrobic to przy uzyciu curl ale jak to nie wiem bo nigdy z tego nie korzystalem ;)
Awatar użytkownika
kabanek
Zakręcona Traszka
Zakręcona Traszka
Posty: 592
Rejestracja: 23 cze 2009, 20:34
Płeć: Mężczyzna
Wersja Ubuntu: 13.10
Środowisko graficzne: Xfce
Architektura: x86_64
Kontakt:

Odp: Zapisywanie każdego obrazka ze strony

Post autor: kabanek »

albo można by było pobrać kod html strony, poszukać wszystkich ciągów znaków wg wzorca np: [url]http://*.jpg[/url] [url]http://*.png[/url] itp i mając już taką gotową listę obrazków wgetem pobrać :)
Awatar użytkownika
el.pescado
Zakręcona Traszka
Zakręcona Traszka
Posty: 734
Rejestracja: 26 maja 2005, 11:43
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Zapisywanie każdego obrazka ze strony

Post autor: el.pescado »

Można też użyć programu wget:, coś w stylu

Kod: Zaznacz cały

wget -r --no-directories -l 1 -A '.jpg,.png,.gif' http://adres_url/
Polecam lekturę

Kod: Zaznacz cały

man wget
Awatar użytkownika
sibul
Wytworny Kaczor
Wytworny Kaczor
Posty: 318
Rejestracja: 16 paź 2007, 22:29
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Inne
Architektura: x86_64

Odp: Zapisywanie każdego obrazka ze strony

Post autor: sibul »

można użyć programu HTTrack i pobrac obrazki i inne zawartości strony, w przypadku stron PHP pobierze tylko obrazki i kod html.
OS X 10.8.3
Awatar użytkownika
kabanek
Zakręcona Traszka
Zakręcona Traszka
Posty: 592
Rejestracja: 23 cze 2009, 20:34
Płeć: Mężczyzna
Wersja Ubuntu: 13.10
Środowisko graficzne: Xfce
Architektura: x86_64
Kontakt:

Odp: Zapisywanie każdego obrazka ze strony

Post autor: kabanek »

myślę, że ten skrypt mógłby Ci pomóc

Kod: Zaznacz cały

wget onet.pl

for format in jpg gif png
do
	wget -r --no-directories `cat index.html | perl -lane '/.*src=\"([^\"]+)\".*/; print $1'|grep $format`
done
jak uda Ci się go jakoś udoskonalić to daj znać :)

ps jest napisany na podstawie viewtopic.php?p=630018#p630018

edit:
jak chcesz, żeby działał tak jak chcesz, to musisz jakoś napisać w perlu, żeby wyszukiwało wszystkie ciągi znaków zaczynające się na http:// i kończące na jpg, gif itp (w pętli oczywiście) ja perla nie umiem niestety, to nie mogę Ci pomóc w tym... ale pomysł na rozwiązanie problemu jest. Jak poznasz odp to daj mi znać :) chętni się dowiem jak to jest zrobione :)
konert
Piegowaty Guziec
Piegowaty Guziec
Posty: 12
Rejestracja: 25 mar 2009, 22:24
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: GNOME

Odp: Zapisywanie każdego obrazka ze strony

Post autor: konert »

Ogólnie skrypt jest dobry, aczkolwiek istnieje jeden problem:

większość stron zawiera miniaturki zdjęć na swojej głównej stronie, i najlepiej by było, gdyby dało się zapisać tylko oryginalny plik a miniaturki nie
sunset
Piegowaty Guziec
Piegowaty Guziec
Posty: 14
Rejestracja: 18 lut 2007, 12:06
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Zapisywanie każdego obrazka ze strony

Post autor: sunset »

konert pisze:większość stron zawiera miniaturki zdjęć na swojej głównej stronie, i najlepiej by było, gdyby dało się zapisać tylko oryginalny plik a miniaturki nie
tak się raczej nie da... jak skrypt ma wiedzieć co jest miniaturką a co nią nie jest? nie zawsze sytuacja będzie na tyle jasna dla skryptu - nie każdy plik musi zawierać nazwe sugerującą, że jest to miniaturka np xyz.jpg i cvy.jpg - pozatym jeden obrazek, może występować w kilku wersjach np. mały, średni, duży, zamglony, obramowanie itp. nie zawsze skrypt potrafiłby dokonać odpowiedniej selekcji. Jedynym wyjściem byłby algorytm który porównywałby zdjęcia i np. plik1 plik2 plik3 które wyglądają tak samo ale mają różny rozmiar, wybierałby ten największy... no ale wątpie, żebyś takie coś znalazł zadarmo :)
Awatar użytkownika
kabanek
Zakręcona Traszka
Zakręcona Traszka
Posty: 592
Rejestracja: 23 cze 2009, 20:34
Płeć: Mężczyzna
Wersja Ubuntu: 13.10
Środowisko graficzne: Xfce
Architektura: x86_64
Kontakt:

Odp: Zapisywanie każdego obrazka ze strony

Post autor: kabanek »

poza tym często gęsto gdy się kliknie na miniaturkę, to nie odwołuje się bezpośrednio do obrazka, ale np do podstrony, gdzie ten obrazek jest wyświetlany w większych wymiarach :)
można napisać minimalistyczną wersję, gdzie jest miniaturka i ona odwołuje się bezpośredniego do obrazka, ale jak tak nie jest to tutaj pojawiają się schody :)
konert
Piegowaty Guziec
Piegowaty Guziec
Posty: 12
Rejestracja: 25 mar 2009, 22:24
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: GNOME

Odp: Zapisywanie każdego obrazka ze strony

Post autor: konert »

Załóżmy, że na stronie jest miniaturka, która po kliknięciu otwiera podstronę z tylko tym jednym obrazkiem, ale tez np z jakimś tekstem. Jak sciągnąć takie coś, bo opcja ściągania rekurencyjnego we wgecie nie działa w ten sposób jak by można po niej oczekiwać, albo ja czegoś nie ogarniam.
Awatar użytkownika
kabanek
Zakręcona Traszka
Zakręcona Traszka
Posty: 592
Rejestracja: 23 cze 2009, 20:34
Płeć: Mężczyzna
Wersja Ubuntu: 13.10
Środowisko graficzne: Xfce
Architektura: x86_64
Kontakt:

Odp: Zapisywanie każdego obrazka ze strony

Post autor: kabanek »

a czy na tej stronie jest tak, że miniaturka ma podobną nazwę do oryginału? Tzn jak dużo obrazek nazywa się obraz.jpg, to miniaturka np obrazek_mini.jpg?
konert
Piegowaty Guziec
Piegowaty Guziec
Posty: 12
Rejestracja: 25 mar 2009, 22:24
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: GNOME

Odp: Zapisywanie każdego obrazka ze strony

Post autor: konert »

tak, dokładnie tak jak mówisz
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 8 gości