![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 316 Pomógł: 36 Dołączył: 2.04.2008 Ostrzeżenie: (0%) ![]() ![]() |
Piszę program do ściągania plików z m.in rapidshare i zawiesiłem się na najważniejszej rzeczy - samym ściąganiu (IMG:style_emoticons/default/winksmiley.jpg) . Interfejs RS jest dwuetapowy - najpierw trzeba kliknąć czy jest się premium, czy free user, potem przechodzi się do ściągania. Firebug mówi, że tylko jedna zmienna jest (na pierwszym etapie) przesyłana - dl.start=Free (odpowiednio inna dla premium, ale na tym mi nie zależy), no i ją wysyłam:
Zawsze w odpowiedzi dostaję pierwszą stronę, zamiast tej, która powinna pokazać się po kliknięciu. Nawet wysyłałem te same nagłówki, co FX - wciąż nic. Jak zrobić tak, żeby działało (IMG:style_emoticons/default/biggrin.gif) ? Edit: A dokumentacja api rapidshare na ten temat milczy... Ten post edytował 230005 26.05.2010, 17:33:09 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
Na moją logikę to musisz udać czekanie, tj odczekać ileś tam sekund i dopiero bo na pewno to sprawdzają po stronie serwera.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 316 Pomógł: 36 Dołączył: 2.04.2008 Ostrzeżenie: (0%) ![]() ![]() |
To akurat wiem, ale do tego etapu jeszcze nie doszedłem. Mi chodzi o miejsce gdzie klikasz "free user" i przenosi cię na kolejną stronę - czyli zatwierdzasz formularz, i dostajesz odpowiedź. Ja w odpowiedzi dostaję tą samą stronę, tak jakby formularz nie został wysłany. Myślałem, że może jakieś pole tego właśnie formularza mi umyka, ale w źródle strony jest tylko jedno pole które trzeba przesłać. W firebugu też jest napisane, że tylko ono zostało wysłane...
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
Hmm, może sprawdzają ciasteczkami czy byłeś na wcześniejszej stronie (bot checker). Użyj curla i zapisz ciastko. No i odwiedz ta strone z wyborem w takim razie.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
To akurat wiem, ale do tego etapu jeszcze nie doszedłem. Mi chodzi o miejsce gdzie klikasz "free user" i przenosi cię na kolejną stronę - czyli zatwierdzasz formularz, i dostajesz odpowiedź. Ja w odpowiedzi dostaję tą samą stronę, tak jakby formularz nie został wysłany. Myślałem, że może jakieś pole tego właśnie formularza mi umyka, ale w źródle strony jest tylko jedno pole które trzeba przesłać. W firebugu też jest napisane, że tylko ono zostało wysłane... co do formularzy i niektórych adresów to strony na które jest się skierowanym nie zawsze są docelowymi, często zdarzają się przekierowania... co do firebug'a to on nie do tego służy ;] (przydatny jest ale...)... jeśli chcesz wcześniej przeanalizować co gdzie się dzieje, co dokładnie jest wysyłane, jakie nagłówki [w tym ciasteczka, post i np. referer...], czy nastąpiło przekierowanie i inne to pod mozille polecam inne narzędzie jakim jest: Live HTTP Headers jeśli w odbieraniu i symulowaniu przeglądarki za wiele z surowymi nagłówkami nie chcesz się bawić to polecam jak kolega wyżej cURL'a który na pewno ma interfejs także dla javy... |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 316 Pomógł: 36 Dołączył: 2.04.2008 Ostrzeżenie: (0%) ![]() ![]() |
Kurde, no ten Live HTTP headers pokazuje raczej to co już wiem:
#request# POST http://rs30.rapidshare.com/files/140895646...ndows.part1.rar POST /files/140895646/netbeans-6.1-ml-windows.part1.rar dl.start=Free #request# POST http://rank.ant.com/fetch/ #request# GET http://rs30.rapidshare.com/img2/styles.css #request# GET http://rs30.rapidshare.com/img2/favicon.ico #request# GET http://rs30.rapidshare.com/img2/favicon.ico #request# GET http://rs30.rapidshare.com/img2/menu_bg.gif #request# GET http://rs30.rapidshare.com/img2/rslogo.gif #request# GET http://rs30.rapidshare.com/img2/pfeil.jpg #request# GET http://rs30.rapidshare.com/img2/stepx_sprite.gif #request# GET http://rs30.rapidshare.com/img2/content_bg...ttom_sprite.gif #request# GET http://rs30.rapidshare.com/img2/content_bg_middle.gif #request# GET http://rs30.rapidshare.com/img2/symbol_fertig_small.gif #request# GET http://rs30.rapidshare.com/img2/preisschild_bg.gif #request# GET http://rs30.rapidshare.com/img2/prepaid_preisschild_bg.jpg POST /fetch/ url=http%3A%2F%2Frs30.rapidshare.com%2Ffiles%2F140895646%2Fnetbeans-6.1-ml-windows.part1.rar&ref=http%3A%2F%2Frapidshare.com%2Ffiles%2F140895646%2Fnetbeans-6.1-ml-windows.part1.rar&uid={FED810E7-A8A4-4710-8111-BF2F11BDAEDC} Większość tego to jak widać obrazki, ale np. zastanawia mnie to: POST /fetch/ url=http%3A%2F%2Frs30.rapidshare.com%2Ffiles%2F140895646%2Fnetbeans-6.1-ml-windows.part1.rar&ref=http%3A%2F%2Frapidshare.com%2Ffiles%2F140895646%2Fnetbeans-6.1-ml-windows.part1.rar&uid={FED810E7-A8A4-4710-8111-BF2F11BDAEDC} . Wie ktoś co to jest i ew. jak to zemulować (IMG:style_emoticons/default/biggrin.gif) ? Termin oddania projektu zbliża się wielkimi krokami, a ja chyba wziąłem sobie zadanie, które przynajmniej obecnie mnie przerasta... Ten post edytował 230005 27.05.2010, 16:47:28 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
Kurde, no ten Live HTTP headers pokazuje raczej to co już wiem: z rapidshare nie maiłem potrzeby się bawić ale... jak analizować dane?? które z resztą nie wszystkie przedstawiłeś ;p...... Termin oddania projektu zbliża się wielkimi krokami, a ja chyba wziąłem sobie zadanie, które przynajmniej obecnie mnie przerasta... włączasz ten live... i chodzisz po jak najmniejszej liczbie stron wykonując jak najmniej akcji jakich trzeba by ściągnąć plik w przeglądarce... jako punkt startowy masz stronę z której startowałeś - patrzysz czy coś się nie poustawiało - jak tylko cookies to luz... analizujesz czy coś Cię nie przekierowało [nagłówek "Location" - czyli redirect...] - kopiuj sobie kluczowe nagłówki i dane do innego pliku celem dalszej analizy bo jak widzisz masz jeszcze te css, obrazki i javascript... analizuj za koleją wszystkie linki związane z domeną i przekierowania z tej domeny... dodatkowo zwróć uwagę czy przy jakimś obrazku, pliku css lub javascript nie jest dodatkowo ustawiony cookies [może być tak, że w ten sposób w późniejszym etapie rozpoznają przeglądarkę - nie bawiłem się tam...]... gożej jeśli jednym z zabezpieczeń będzie wczytanie konkretnego pliku - czy to obrazka, pliku css lub javascript [ostatnie raczej odpada] - wczytując plik do przeglądarki wysyła się identyfikator sesji - na tej podstawie mogą zapisać sobie w sesji czy ten ktoś może ściągać czy nie [akurat jako zabezpieczenie sam tak raz zrobiłem ale nie na ściąganie plików] - no i jeszcze to co pisali plus odczekanie czasu... cookies się nie przejmujesz bo jeśli skorzystasz z cURL'a chodząc po następnych stronach sam wyśle cookies [ale musisz dać w ustawieniach coby te cookies gdzieś zapisywał...], zastosowanie cURL'a w javie raczej będzie podobne jak w php - a zestaw jego funkcji jest dobrze opisany na manualu php z przykładami w komentarzach... dodatkowo na określonych stronach możesz mieć wygenerowane jakieś klucze czy to w formularzu czy inaczej... więc pasuje się tym danym dokładnie przyjrzeć gdyż na poszczególnym etapie po przekierowaniach lub po przejściu strony być może będziesz musiał stronę przeszukać... model DOM jest zaimplementowany w wielu językach więc zapewne i do javy znajdziesz klasy coby było łatwiej bez wyrażeń regularnych... jeśli w danym etapie będziesz musiał wysłać dane POST to w cURL'u są także do tego odpowiednie funkcje... jeśli jednak nie chcesz korzystać z cURL'a oraz nie znasz żadnego klienta HTTP w javie [mam na myśli zestaw klass] to będziesz musiał sobie sam takie cosik napisać, czyli zestaw klas wysyłających odpowiednie nagłówki podczas połączenia... PS. i jeśli dane będziesz wysyłał jako surowe nagłówki to co do POST będziesz musiał podać nagłówek jeszcze: z kolej po wszystkich nagłówkach będziesz musiał dodać 2 znaki "\r\n" czyli "\r\n\r\n" i dalej podajesz treść POST'a czyli $dataPost... i dodatkowo każdy z nagłówków jest od siebie oddzielony jednym windowsowym enterem "\r\n" - koniec nagłówków to właśnie 2 entery... wysyłanie cookies to wysłanie nagłówka "Cookie"... gdzie ja np. pobierając w fragmencie kodu cookies jako tablicę array(klucz=>wartość) z bazy budowałem mniej więcej tak:
co do wysyłania surowych nagłówków to deczko grubszy temat jeśli ich się nie rozumie... dlatego najprościej skożystać właśnie z cURL'a... Ten post edytował zegarek84 27.05.2010, 21:13:56 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 00:03 |