Aby ściągnąć pliki z wrzuty w Ruby, należy ze strony danego adresu odczytać zmienne javascript-u które zostaną przekazane do odtwarzacza napisanego we flashu.
require 'net/http' require 'uri' require 'rexml/document' def get(url) url = URI.parse(url) http = Net::HTTP.new(url.host) return http.get(url.path).body end page = get(url) #zczytanie zmiennych javascript if page =~ /'key' : '([^']*)',/ key = $1 else key = '4KWNcfGaCak' end if page =~ /'login' : '([^']*)',/ login = $1 else login = 'lifthrasil' end if page =~ /'host' : '([^']*)',/ host = $1 else host = 'labs.wrzuta.pl' end if page =~ /'site' : '([^']*)',/ site = $1 else site = 'wrzuta.pl' end if page =~ /'lang' : '([^']*)',/ lang = $1 end
Następnie z podanych zmiennych należy utworzyć adres url
rnd = (rand*1000000).floor url = "http://#{login}.#{host}/xml/#{_local2}/#{key}/sa/#{site}/#{rnd}"
Pobrać daną stronę (jest to plik XML) i wczytać adres pliku
xml = REXML::Document.new(get(url)).root url = xml.elements['//file/storeIds/fileId'][0] #pobranie nazwy pliku filename = xml.elements['//name'][0]
Następnie można użyć programu wget do ściągnięcia pliku
`wget -O #{filename} "#{url}"`
Możesz także skorzystać z Downloadera mój projekt na github, który ściąga pliki z przekleja, rapidshare, 4shared i wrzuty. Jak o używać możesz przeczytać w poście: File hosting downloader project (po angielsku) oraz skrypty do wszukiwania i walidacji linków z rapidshare.