Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 13.11.2009 Ostrzeżenie: (0%)
|
Witam,
Chcialbym poprosic o porade ze sciaganiem stron za pomoca CURL. Stronka ktora probuje otworzyc ma w sobie kawalek kodu <script language=javascript>function updateprogress(nPercent){document.getElementById('imgprogress').width=nPercent*3;document.getElementById('txtprogress').innerHTML=nPercent+" %";if( nPercent < 100 )setTimeout( 'updateprogress('+(nPercent+1)+')', 75 );}</script> <script language=javascript>updateprogress(1);</script> <script language=javascript>document.getElementById('progress').style.visibility="hidden";document.getElementById('progress').style.height="0";document.getElementById('progress').style.position="absolute";</script><br/> <table border=0 cellpadding=0 cellspacing=0 width=500 class=StoreTable><tr><td colspan="10" align=right> </table> Wyglada na to ze za pomoca javascript zaimplementowano petle opozniajaca czytanie tabeli <class=StoreTable>. Wydaje mi sie ze na serwerze przygotowywana jest odpowiedz dopiero jak stronka zaczyna sie wczytywac. Jak otwieram strone w pregladarce widac pasek postepu ktory po pewnym czasie znika i pojawia sie tabelka ktora chcialem pobrac. Niestety curl nie wykonuje javascript - tak ze tabelka ktora pobieram jest pusta. Probowalem wprowadzic petle opozniajaca podczas czytania naglowka oraz czytania body curl_setopt($ch, CURLOPT_HEADERFUNCTION, ‘read_header’); curl_setopt($ch, CURLOPT_WRITEFUNCTION, ‘read_body’); niestety caly czas w tabeli StoreTable nie ma informacji ktore potrzebuje - tak jakby serwer nie zdazyl jeszcze wypelnic tabeli. Czy jest jakis sposob zeby zmusic curl do poczekania z pobieraniem strony juz po tym jak rozpocznie jej sciaganie ? Piotrek |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 13.11.2009 Ostrzeżenie: (0%)
|
Pierwsze moje skojarzenie bylo dokladnie takie samo ale przegladnalem javascript i wyglada ze to tylko petla opozniajaca na timerze - do rysowania progresu
Oto caly skrypt ze stronki ktora chce parsowac. <script language=javascript> function updateprogress(nPercent) { document.getElementById('imgprogress').width=nPercent*3; document.getElementById('txtprogress').innerHTML=nPercent+" %"; if( nPercent < 100 )setTimeout( 'updateprogress('+(nPercent+1)+')', 75 ); }</script> <script language=javascript> updateprogress(1); </script> <script language=javascript>document.getElementById('progress').style.visibility="hidden";document.getElementById('progress').style.height="0";document.getElementById('progress').style.position="absolute";</script> Stronka sie sciaga przegladarka analizuje na biezaco kod i natrafia na wywolanie updateprogress. Ten skrypt jest zaraz przed tabela ktora mnie interesuje. Chyba w trakcie wysowania progresu server jeszcze przygotowuje jakies dane i jak przegladarka skonczy to dopiero dane sa gotowe. Wydaje mi sie ze jak zmusze curl do wstrzymania transferu ze stronki to mi sie uda. Ale wszystkie proby jak na razie jedynie wstrzymuja wykonanie php a curl w tle sciaga i tak stronke ze swoja predkoscia. Tak ze nie wyglada zeby javascript generowal jakakolwiek zawartosc strony. |
|
|
|
Jackblues [CURL] javascript 16.11.2009, 12:29:26
darko może nie tyle curla co skryptu w ogóle:
http://ph... 16.11.2009, 12:31:06
Jackblues Cytat(darko @ 16.11.2009, 12:31:06 ) ... 16.11.2009, 13:08:50
darko może spróbuj curl_multi_select i curl_setopt 16.11.2009, 13:14:47
Jackblues Ale te przyklady pokazuja jak czekac az stronka si... 16.11.2009, 14:00:13
webcitron Technicznie mogę się wypowiedzieć dlaczego tak się... 16.11.2009, 20:54:40 ![]() ![]() |
|
Aktualny czas: 13.03.2026 - 05:04 |