Hej,
skorzystałem z Waszego wątku, więc dodam coś od siebie.
Nie mam teraz za bardzo czasu na poprawienie udostępnionego skryptu, ale podam przepis jakiego sam użyłem, by pobrać wgetem plik z chomikuj.pl:
-2) chcąc skorzystać z flashgota z wgetem skonfigurowałem tego pierwszego; nie zadziałało (wget nie otrzymywał poprawnie User Agent, a że flashgot nie umożliwia dodawania apostrofów i cudzysłowów, nie mogłem go poprawić "z palca", a skryptu jakoś nie chciało mi się pisać

-1) z wcześniejszej próby pobrania pliku Operą (jedyna przeglądarka jaką znam, która potrafi wznowić pobieranie - niestety miałem zbyt często zrywane połączenie by miało to sens) uzyskałem ten bardzo długi URL - skopiowałem go po prostu z listy pobierań - zapisałem go do pliku url.txt (który skopiowałem na zdalny serwer)
0) będąc zalogowanym użyłem flashgota, ponieważ grzecznie zapisał wszystkie ciasteczka do pliku cookies.txt - te (tylko dla "chomikuj.pl" i podobnych) skopiowałem na zdalny serwer (szybsze i stabilne łącze)
1) na konsoli zdalnego serwera (więc inne IP) wydałem polecenie jak następuje:
Kod: Zaznacz cały
login@srv:~$ wget -c --tries=999 --load-cookies=cookies.txt --user-agent "Mozilla/6.0 (Windows NT 6.2; WOW64; rv:16.0.1) Gecko/20121011 Firefox/16.0.1" -i url.txt
Rezultat:
Kod: Zaznacz cały
--2013-01-06 21:48:17-- http://s195.chomikuj.pl/File.aspx?e=2NVHxLoPo9PsKHzMS-ipt-itd_ten_dlugi_URL&pv=2
Resolving s195.chomikuj.pl... 50.22.209.55
Connecting to s195.chomikuj.pl|50.22.209.55|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://chomikuj.pl/File.aspx?e=kolejny-jakis-identyfikator&pv=2 [following]
--2013-01-06 21:48:17-- http://chomikuj.pl/File.aspx?e=kolejny-jakis-identyfikator&pv=2
Resolving chomikuj.pl... 174.36.207.146
Connecting to chomikuj.pl|174.36.207.146|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://s195.chomikuj.pl/File.aspx?e=2bardzo-dlugi-URI&pv=2 [following]
--2013-01-06 21:48:17-- http://s195.chomikuj.pl/File.aspx?e=2bardzo-dlugi-URI&pv=2
Reusing existing connection to s195.chomikuj.pl:80.
HTTP request sent, awaiting response... 200 OK
Length: 3875485169 (3.6G) [text/multipart]
Saving to: `File.aspx?e=oryginalna-nazwa_pliku--jak-uri_w_url.txt&pv=2'
100%[========================================================================================>] 3,875,485,001 28.7M/s in 2m 14s
2013-01-06 21:50:31 (27.6 MB/s) - `File.aspx?e=2oryginalna-nazwa_pliku--jak-uri_w_url.txt&pv=2' saved [3875485169/3875485169]
FINISHED --2013-01-06 21:50:31--
Reasumując:
z pewnością da się to wszystko zrobić skryptem bashowym (podejrzewam nawet, że w perlu z WWW::curl byłoby jeszcze prościej, jako że perl jest stworzony do parsowania tekstu - np. stron www), ale że naprawdę potrzebuję tego raz w roku, nie znajdę na to czasu, przykro mi.
Zauważcie, że kluczowe są trzy elementy: "długa" nazwa pliku, cookies i User Agent. Nie trzeba było nawet używać referera.
Pozdrowienia (i dziękuję za pomoc),
k.