Buenas,
mi intención es hacer unas estadisticas con unos datos existentes en una web. Para entrar en dicha web es necesario estar registrado (lo cual estoy) y creo que es ahí donde estoy dandome contra la pared una y otra vez.
Probé con curl y no tuve exito:
$url = "http://url.com/";
$postData = array("username" => "usuario", "password" => "pass");
/*Convierte el array en el formato adecuado para cURL*/
$elements = array();
foreach ($postData as $name=>$value) {
$elements[] = "{$name}=".urlencode($value);
}
$handler = curl_init();
curl_setopt($handler, CURLOPT_URL, $url);
curl_setopt($handler, CURLOPT_POST,true);
curl_setopt($handler, CURLOPT_POSTFIELDS, $elements);
$response = curl_exec ($handler);
curl_close($handler);
He probado con Dom pero no se como enviar las variables POST del login (tampoco se si ahí está o no mi problema) y el tema es que cada vez que conecto me redirige a la página donde está el login. El codigo es tal que así:
require("simplehtmldom/simple_html_dom.php");
$url="http://url.com";
$html=file_get_contents($url);
/*** a new dom object ***/
$dom = new domDocument;
/*** load the html into the object ***/
$dom->loadHTML($html);
/*** discard white space ***/
$dom->preserveWhiteSpace = false;
/*** the table by its tag name ***/
$tables = $dom->getElementsByTagName('table');
/*** get all rows from the table ***/
$rows = $tables->item(0)->getElementsByTagName('tr');
/*** loop over the table rows ***/
foreach ($rows as $row)
{
/*** get each column by tag name ***/
$cols = $row->getElementsByTagName('td');
/*** echo the values ***/
echo $cols->item(0)->nodeValue.',';
echo $cols->item(1)->nodeValue.',';
echo $cols->item(2)->nodeValue.',';
echo $cols->item(3)->nodeValue.',';
echo $cols->item(4)->nodeValue;
echo '<br />';
}
¿Alguna solución para arreglar el codigo con DOM? ¿alguna sugerencia o alternativa para poder obtener dichos datos? ¿Con visual basic podria tener mas exito? Cualquier aportación será de agradecer porque la verdad estoy que no se por donde tirar... :S