![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 13.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Rozumiem to, co jest w samouczku CURL'a dot. logowania, wypełniania formularzy itp.
Ja mam takie coś:
zamiast 'last' może być 1.....n i z tym poradzę. Chcę zrobić: 0. pobierz zawartość strony nr 1. 1. kliknij w 1 2. Pobierz zawartość strony nr n++ Co mam wysłać do serwera? F. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Tyle informacji dałeś (IMG:style_emoticons/default/smile.gif)
Po pierwsze sprawdź jak to działa (strona) bez włączonej obsługi JavaScript |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 13.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Jest strona, której jedną ramkę zajmuje wynik działania kilku skryptów jawy. W tej ramce pojawiają się rekordy bazy ( 20 sztuk) jeden pod drugim, jako odnośniki do całego rekordu ( dla ustalenia jest a href z nazwą firmy a jego kliknięcie wyświetla pełen opis firmy ) pod tymi rekordami pojawia się tradycyjnie, jak u wujka Google " Pierwszy 2 3 4 ... Ostatni " kliknięcie na " 2 " pokazuje kolejne 20 rekordów, ale odświeża się tylko ramka z rekordami. Strona nie. Zawartość strony nie ma znaczenia. Po wyłączeniu JS klikanie na cyferki nie działa. A href'y z listy 20 wyświetlonych działają. Chcę napisać mechanizm wyłuskujący wszystkie a hrefy z tej ramki. Potem ( ale to już nie jest przedmiotem pytania ) z tych ahrefów pobrać wszystkie dane tych firm. Problemem dla mnie jest zmiana strony na kolejną, czyli kliknięcie 2,3 ...
Tak <td class="dr-dscr-inact rich-datascr-inact " onclick="Event.fire(this, 'rich:datascroller:onscroll', {'page': '10'});">10</td> wygląda cyferka 10 do kliknięcia, aby pojawiła się 10 strona. F. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 076 Pomógł: 62 Dołączył: 6.03.2005 Skąd: Wroc Ostrzeżenie: (0%) ![]() ![]() |
PHP nie "klika".
Musisz na piechotę rozszyfrować metodę działania skryptu javascript i odpowiednio to "obejść" - np sprawdzić wg jakiego schematu javascript wczytuje kolejne podstrony iframe'a albo div'a i te podstrony podać np curlowi w php |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
@up
On wyraźnie napisał o Javie a nie o JavaScript (IMG:style_emoticons/default/wink.gif) @autor http://forum.php.pl/style_images/kot-kotara.jpg I zastosuj się do rad, zobacz jak działa ten JS, zobacz firebugiem czy innym narzędziem jak i kiedy odpytuje skrypty php i zrób to samo w curl. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 13.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
I zastosuj się do rad, zobacz jak działa ten JS, zobacz firebugiem czy innym narzędziem jak i kiedy odpytuje skrypty php i zrób to samo w curl. Pomogłeś. Dzięki. Wiem, co wysyła. Nie wiem jak to wysłać curl'em. To co wysyłane jest do serwera (POST): AJAX:EVENTS_COUNT= 1 AJAXREQUEST= _viewRoot ajaxSingle= j_id79:drugList:j_id88 j_id79= j_id79 j_id79:drugList:j_id88= 3 javax.faces.ViewState= j_id3 ( znaki '=' dodałem ja, aby było widać parametry) Źródło jest takie: AJAXREQUEST=_viewRoot&j_id79=j_id79&javax.faces.ViewState=j_id3&j_id79%3AdrugList%3Aj_id88=3&ajaxSingle=j_id79%3AdrugList%3Aj_id88&AJAX%3AEVENTS_COUNT=1& Jak wysyłam to: curl_setopt($ch, CURLOPT_POSTFIELDS, createPostString($postFields)); i poszczególne parametry jako elementy tablicy, jak w tym przykładzie z samouczka - odbieram 300 bajtów pliku, który powinien mieć około 2,4kb tak samo jak wysyłam http://www.strona?AJAXREQEST=...&...&.... przez curla - efekt jest identyczny - curl odbiera 300 bajtów. Jak to wysłać? Jeszcze jedną podpowiedź poproszę.... F. EDIT [2011-09-20 12:27] Dodając wszystkie możliwe nagłówki z zapytania wysyłanego do serwera przez przeglądarkę doszedłem do sytuacji, w której zwraca mi CAŁĄ stronę bez tej ramki, która jest dla mnie najistotniejsza, czyli tej, która się zmienia w chwili klikania na poszczególne strony. Tu mi zwraca stronę w HTML'u , a firebug pokazuje , że przy poprawnym wykonaniu tego na stronie zwraca TYLKO ramkę odświeżaną przez przeglądarkę w XML'u.... Tej właściwej zawartości nigdy nie udało mi się uzyskać z poziomu CURLA. A na stronie - za każdym razem...... Ten post edytował funky_php 20.09.2011, 11:36:16 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 23:50 |