Bądź: Wyszukaj na stronie z użyciem Google
reklama:

środa, 2 września 2009

cURL: Masowe pobieranie avatarów z Blip.pl

Autor: , 09:00, środa, 2 września 2009


Czas przypomnieć sobie stare dobre rozwiązania pozwalające na ciekawe zabawy w internecie, planuję zatem napisać kilka tekstów o bardzo funkcjonalnej bibliotece cURL, tym razem kończąc na rzeczach bardziej zaawansowanych niż w poprzedniej serii. Zaczniemy od stosunkowo łatwej operacji przechwytywania avatarów użytkowników serwisu Blip.pl, którzy ostatni wyświetlili się na stronie głównej. Oczywiście sposób można adoptować do własnych potrzeb na innych witrynach.

Na początek musimy jedynie wgrać cURL:
sudo apt-get install curl
Najważniejszą linijką w tego typu skrypcie jest przechwycenie odpowiednich ciągów znaków z curl. O tym jak wygląda możemy się przekonać wpisując zwyczajnie w konsoli:
curl http://blip.pl
Z tego ciągu znaków musimy wybrać te, które reprezentują adres obrazków, całość wygląda zatem mniej więcej tak:
curl 'http://blip.pl' | grep -o -e 'http://.\{1,8\}\.blip.pl/user_generated/avatars/.\{1,80\}\.jpg' > spis_plikow1
Tutaj warto zaznaczyć, że często popełnia się błąd zakładając, że obrazki leżą w tej samej domenie co strona serwisu. Najlepiej zwyczajnie sprawdzić otwierając właściwości któregoś z nich w przeglądarce. Enigmatyczne {1,8} to ciąg dowolnych znaków w danym miejscu, które oczywiście zmieniają się zależnie od nazwy serwera czy obrazka.

Po tej operacji w katalogu, w którym uruchomiliśmy skrypt zostanie stworzony plik tekstowy zawierający linki do avatarów. Jeśli jest pusty oznacza to zwyczajnie, że ścieżki są nieprawidłowe. Prosto można dostrzec, że są to linki do miniaturek, zatem milej byłoby mieć je w większej rozdzielczości. Tym razem nie musimy zbyt długo kombinować, wystarczy podmienić w pliku część nazwy z "nano" na "standard". Zajmie się tym polecenie:
sed s/"nano"/standard/g spis_plikow1 > spis_plikow2
Stworzy nowy plik zawierający nasze avatary, tym razem w pełnej wielkości. Cóż, na koniec warto to obudować w skrypt, który na końcu pobierze obrazki:

#!/bin/bash

mkdir blip-avatary
cd blip-avatary

curl 'http://blip.pl' | grep -o -e 'http://.\{1,8\}\.blip.pl/user_generated/avatars/.\{1,80\}\.jpg' > spis_plikow1

sed s/"nano"/standard/g spis_plikow1 > spis_plikow2

wget `cat spis_plikow2`

Zachęcam do zabawy z innymi stronami, oczywiście wszystko w ramach testów.

Tagi: ,

blog comments powered by Disqus

Prześlij komentarz


Popularne posty

Etykiety