Me di cuenta que la línea "*$paradero = DOM($simt);*" debe ser "*$paradero =
trim(DOM($simt))*;" del código que envié, pero me gusto más lo que hizo
Julio.

slds.-*
*
2010/4/23 Julio Costa Zambelli <[email protected]>

> Pueden ver un experimento que estuve haciendo ayer temprano con htmlSQL (
> http://www.jonasjohn.de/lab/htmlsql.htm), en
> http://www.openstreetmap.cl/ts/examples/demo_12.php
>
> El código:
>
> <?php
>
>     /*
>     ** htmlSQL - Example 12
>     **
>     ** Shows how to replace the user agent and the referer with
>     ** custom values
>     */
>
>     include_once("../snoopy.class.php");
>     include_once("../htmlsql.class.php");
>
>     $wsql = new htmlsql();
>
>     // set a individual agent:
>     $wsql->set_user_agent('MyAgentName/0.9');
>
>     // set a new referer:
>     
> $wsql->set_referer('http://www.openstreetmap.cl/'<http://www.openstreetmap.cl/%27>);
>
>
>     // connect to a URL
>     if (!$wsql->connect('url', '
> http://web.simt.cl/Piv/servicios.action?paradero=PC710')){<http://web.simt.cl/Piv/servicios.action?paradero=PC710%27%29%29%7B>
>         print 'Error mientras se conectaba: ' . $wsql->error;
>         exit;
>     }
>
>     /* execute a query:
>
>        This query returns all text arrays in a td with width="80":
>     */
>     if (!$wsql->query('SELECT text FROM td WHERE $width == "80"')){
>         print "Error de consulta: " . $wsql->error;
>         exit;
>     }
>
>     // fetch results as array
>     foreach($wsql->fetch_array() as $row){
>
>         print_r($row);
>
>     }
>
> ?>
>
>
> El problema con la página de la cual estamos extrayendo los datos (más allá
> de lo horrible del html que se esta usando) es que no hay elementos
> distintivos en las etiquetas que rodean a "Distancia (mts)" Versus los que
> rodean a la distancia de los dos buses. En ese sentido quizás habría que
> usar las etiquetas que generan el encabezado y el cierre de la tabla como
> referencias, y extraer y trabajar las filas que están en medio.
>
>
> 2010/4/23 Herman Vega <[email protected]>
>
> Aquí va en php-cli, la ejecución es lenta por el servidor.
>>
>> *<?php
>>
>> function DOM($element)
>> {
>>     $contenido = "";
>>     $children = $element->childNodes;
>>     foreach ($children as $child)
>>     {
>>         $tmp_dom = new DOMDocument();
>>         $tmp_dom->appendChild($tmp_dom->importNode($child, true));
>>
>> $contenido.=str_replace("<br>","",trim($tmp_dom->saveHTML()))."\n";
>>     }
>>     return $contenido;
>> }
>>
>> $dom= new DOMDocument();
>> // get paraderos
>> $dom->loadHTML(file_get_contents("http://web.simt.cl/Piv/paraderos.action
>> "));
>> $dom->preserveWhiteSpace = true;
>>
>> $domSIMT = $dom->getElementsByTagName("a");
>>
>> foreach ($domSIMT as $simt)
>> {
>>         $paradero = DOM($simt);
>>         if ($paradero != "") {
>>                 echo "PARADERO: $paradero\n";
>>                 // get details foreach stopbus
>>                 $dom_detalle= new DOMDocument();
>>                 $dom_detalle->loadHTML(file_get_contents("
>> http://web.simt.cl/Piv/servicios.action?paradero=$paradero";));
>>                 $dom_detalle->preserveWhiteSpace = true;
>>                 $domDET = $dom_detalle->getElementsByTagName("font");
>>                 foreach ($domDET as $det)
>>                 {
>>                         echo DOM($det);
>>                 }
>>         }
>> }
>>
>> ?>*
>>
>>
>> 2010/4/23 Danilo Lacoste <[email protected]>
>>
>>> Partiré con nuevo hilo para este tema.
>>>
>>> En contexto con nuestro análisis para verificar si es factible extraer
>>> los datos del transantiago, he creado este pequeño script al cual
>>> todavía le falta la parte más importante (leer los tiempos de los
>>> buses cercanos), pero ya es capaz de leer datos básicos del paradero y
>>> hora de referencia.
>>>
>>> Les dejo la idea, si alguien quiere construir uno en otro lenguaje,
>>> sería genial.
>>>
>>> Por ahora solo tiene cargada la lista de paraderos del recorrido C04
>>> (se editan en el archivo paraderos)
>>>
>>> salida esperada:
>>>
>>> dalac...@urano:~/osm/transantiago$ ./test2.sh
>>> descargando esto puede tomar su tiempo...
>>> ----
>>>            PC668
>>>            CIRIO / NUEVA BILBAO
>>>            23-04-2010
>>>            00:06
>>> ----
>>>            PC669
>>>            ESPIGAS / NUEVA BILBAO
>>>            23-04-2010
>>>            00:06
>>> ----
>>>            PC670
>>>            ALBERTO HURTADO / NUEVA BILBAO
>>>            23-04-2010
>>>            00:06
>>> ...
>>> ..
>>> ..
>>>
>>>
>>>
>>> saludos.
>>>
>>> --
>>> www.lacosox.org
>>>
>>> _______________________________________________
>>> Talk-cl mailing list
>>> [email protected]
>>> http://lists.openstreetmap.org/listinfo/talk-cl
>>>
>>>
>>
>>
>> --
>> Herman  Vega  Jara
>> hvegax[a]gmail.com
>>
>> _______________________________________________
>> Talk-cl mailing list
>> [email protected]
>> http://lists.openstreetmap.org/listinfo/talk-cl
>>
>>
>


-- 
Herman  Vega  Jara
hvegax[a]gmail.com
_______________________________________________
Talk-cl mailing list
[email protected]
http://lists.openstreetmap.org/listinfo/talk-cl

Responder a