Kolego szukałem szukałem, na forum tutaj piszę zazwyczaj gdy już zupełnie rozłożę ręce i nie mam pomysłu.
Metoda z eksportowaniem ciasteczka z firefoxa wydaje się działać. Pytanie tylko co jest nie tak z wgetowym zapytaniem, bo ciastko z mozilli wygląda tak:
Kod: Zaznacz cały
[B][I]adres[/I][/B].com FALSE /pages/ TRUE 0 JSESSIONID 2A21E7D369BD87F184FCEF2143FD7832.sdapp03
[B][I]adres[/I][/B].com FALSE /pages/sdcall/ FALSE 0 loginAction default
[B][I]adres[/I][/B].com FALSE /pages/sdcall/ FALSE 0 accessmode ""
s0.[B][I]adres[/I][/B].com FALSE /pages/ TRUE 0 JSESSIONID 3494F583FFD8CBA41BFC4A63A6486157.lb02
A jak wget zapisze ciasteczko to są w nim tylko druga i trzecia linia z tych powyżej, i pewnie dlatego nie działa? Zapytanie do serwera wysyłałem dokładnie według wzoru z twojego drugiego linku.
DODANE
Coś jest jeszcze nie do końca dobrze z moim zapytaniem jeszcze.
Kod: Zaznacz cały
wget --post-data="userName=$user&password=$pass" --cookies=on --keep-session-cookies --save-cookies=cookie.txt "$link"
user i pass są ustawione w pliku, prawidłowe. userName i password to id z pól formularza, $link to linka do tego co jest ustawione w formularzu jako
action. W cookie, które otrzymuję brakuje mi (w porównaniu do tego wyeksportowanego z mozilli) tej ostatniej linijki. Jakaś podpowiedź, co jeszcze mógłbym zmienić? Próbowałem ustawiać user-agent, ale nic nie pomogło.
Ech, mój mały rozumek chyba tego nie potrafi ogarnąć, kurde ;] Chociaż przypuszczam, że to pewnie jakaś wielka filozofia nie jest. Nic to, pomęczę jeszcze temat trochę, jakby ktoś zechciał pomóc byłoby miło.
NASTĘPNE DODANE
Hm, logowanie chyba przebiega pomyślnie, bo jestem w stanie pobrać zawartość stron "po" ekranie logowania. Natomiast nie wiem dlaczego nadal nie mogę ściągnąć tego pliku:
Kod: Zaznacz cały
https://[B]adres[/B].com/pages/sdcall/Download?action=listStandard&tableName=calls&listBeanName=callTrackingListBean&listViewBeanName=&mimeFormat=CSV&encoding=UTF-8&fileName=calls.csv&fieldSep=SEM&textSep=&temObjID=-1&downloadMethod=
Jak odpalę wgeta w trybis
spider, to dostaję odpowiedź:
Kod: Zaznacz cały
Żądanie HTTP wysłano, oczekiwanie na odpowiedź...
HTTP/1.1 200 OK
Server: nginx
Date: Tue, 22 Sep 2015 14:06:22 GMT
Content-Length: 0
Connection: keep-alive
Strict-Transport-Security: max-age=15768000
Długość: 0
Zdalny plik istnieje i może zawierać dalsze odnośniki,
jednak rekurencja jest wyłączona -- nie pobieram.
[1] Zakończono wget --spider --server-response https://[B]adres[/B].com/pages/sdcall/Download?action=listStandard
[2] Zakończono tableName=calls
[3] Zakończono listBeanName=callTrackingListBean
[4] Zakończono listViewBeanName=
[5] Zakończono mimeFormat=CSV
[6] Zakończono encoding=UTF-8
[7] Zakończono fileName=calls.csv
[8] Zakończono fieldSep=SEM
[9]- Zakończono textSep=
[10]+ Zakończono temObjID=-1
Plik na 100% nie ma zerowej długości, jest ok 1,2KB.
Próbowałem nawet wysyłać dokładnie takie żądania jak przeglądarka i nic.
Dobra, wiem co jest nie tak, ale nie wiem jak naprawić. Zaraz po zalogowaniu w odpowiedzi na żądanie POST powinno się pojawić takie Set-Cookie cośtamcośtam z właściwym JSESSIONID. No tyle, że u mnie w tym miejscu się wywala. Tzn. wget próbuje w kółko się łączyć i nie może zakończyć - czyli zapisać tego kukisa.
SUKCES!
Okazało się, że aby to śmignęło, to muszę jakby "przeklikać" curlem (bo na niego jednak się zdecydowałem) wszystkie strony po kolei, prowadzące do końcowego odnośnika. No, ale, kurde działa nareszcie
