Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [CURL] javascript
Jackblues
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Jackblues
post
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.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.03.2026 - 05:04