Indique cómo raspar las páginas de AJAX.
Solución del problema
Visión de conjunto:
Todo el raspado de pantalla primero requiere una revisión manual de la página de la que desea extraer recursos. Cuando se trata de AJAX, generalmente solo necesita analizar un poco más que simplemente el HTML.
Cuando se trata de AJAX, esto solo significa que el valor que desea no está en el documento HTML inicial que solicitó, sino que se ejecutará javascript que le solicita al servidor la información adicional que desea.
Por lo tanto, generalmente puede simplemente analizar el javascript y ver qué solicitud hace el javascript y simplemente llamar a esta URL desde el principio.
Ejemplo:
Tome esto como un ejemplo, suponga que la página que desea extraer tiene el siguiente script:
<script type="text/javascript">
function ajaxFunction()
{
var xmlHttp;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("Your browser does not support AJAX!");
return false;
}
}
}
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
document.myForm.time.value=xmlHttp.responseText;
}
}
xmlHttp.open("GET","time.asp",true);
xmlHttp.send(null);
}
</script>
Entonces, todo lo que necesita hacer es hacer una solicitud HTTP a time.asp del mismo servidor. Ejemplo de w3schools.
Raspado avanzado con C++:
Para un uso complejo, y si está utilizando C ++, también podría considerar usar el motor de javascript de firefox, SpiderMonkey, para ejecutar el javascript en una página.
Raspado avanzado con Java:
Para uso complejo, y si está usando Java, también podría considerar usar el motor JavaScript de Firefox para Java Rhino
Raspado avanzado con.NET:
Para un uso complejo, y si usa.Net, también podría considerar usar el ensamblado Microsoft.vsa. Reemplazado recientemente con ICodeCompiler/CodeDOM.
No hay comentarios.:
Publicar un comentario