Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Tsubaru

[Resolvido] Como e salvo uma página via cURL

Recommended Posts

Lista de jogos do Xfire

 

Simplesmente não consigo fazer o cURL funcionar, ou pelo menos não como deveria.

A página carrega e mostra um gif, tipo loading, enquanto um ajax roda no background montando a página. A operação leva uns bons 20 a 30 segundos até que o conteúdo da página apareça, e esse parece ser o problema, o cURL já me retorna direto a página com a animação de loading rodando, ele pega a página antes do loading final.

 

Como eu resolvo isso?

 

Código do html, onde deveria ter o conteúdo:

<div class="window">
  <div id='loader' style='height: 700px; text-align: center;'>
    <img src='http://media.xfire.com/v4/webskins-new/default/images/progress_v2.gif' style='margin-top: 25%;' alt='' />
  </div>
  <div id="ajax_module_wrapper_game_overview2_385581174" style="display: none;" class="ajax_module_wrapper" ></div>
</div>

 

Existe um ajax_module_wrapper.js, ao salvar a página:

g_AjaxModuleWrappers = new Array();
g_AMW_argSets = new Array();

// find the wrapper ID instance that owns this child
function AjaxModuleWrapper_GetID( childID ) {
	el = $( childID );
	
	do {
		el = el.parentNode;
	} while( el && el.className != "ajax_module_wrapper" );
	
	if( !el )
		return null;
	id = el.id;
	return id;
}

// store a refresh method for a given instance, in case we need to update that div later (timed refresh, or button/form-based refresh)
function AjaxModuleWrapper_Register( divID, updaterFunc ) {
	g_AjaxModuleWrappers[ divID ] = updaterFunc;
}

// store a key/value pair for a given instance
function AjaxModuleWrapper_SetArg( divID, argName, argValue ) {
	//alert( "AMW_SetArg( '" + argName + "', '" + argValue + "' )" );
	
	// initialize this arg set if first arg in it
	if( !g_AMW_argSets[ divID ] )
		g_AMW_argSets[ divID ] = new Object();
		
	// if we're deleting an arg
	if( argValue == null )
		delete g_AMW_argSets[ divID ][ argName ];
	// else store the new value
	else g_AMW_argSets[ divID ][ argName ] = argValue;
}

// retrieve an arg from the arg set for a given instance
function AjaxModuleWrapper_GetArg( divID, argName ) {
	if( g_AMW_argSets[ divID ][ argName ] )
		return g_AMW_argSets[ divID ][ argName ];
	else return null;
}

// get the entire arg set for a given instance
function AjaxModuleWrapper_GetArgs( divID ) {
	return g_AMW_argSets[ divID ];
}

// refresh an instance
function AjaxModuleWrapper_Refresh( divID, form, button ) {
	g_AjaxModuleWrappers[ divID ]( form, button );
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você usa o Firebug?

 

Se não, deveria. Uma vez ativado na página d XFire, na aba Console é exibida uma requisição GET sendo muito lentamente feita.

 

Indo nessa requisição e, com o botão direito indo em Copiar Localização você obtém essa URL:

 

http://www.xfire.com/ajax_module_wrapper/dummy.js?bn=4305308092010&module=game_overview2&arg0=&arg1=&arg2=title&arg3=asc&akamai=43186356413.1725

 

Abrindo ela no navegador, em outra aba, você verá que ela tem exatamente aquilo que estaria sendo carregado.

 

Com isso basta analisar com preg_match(), preg_match_all() ou DOM

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.