Bajaron el sitio del SIMT nuevamente :( Hay que conseguir una fuente
confiable para estos datos...


2010/4/23 Herman Vega <[email protected]>

> 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