[Talk-cl] Script para Leer datos Paraderos Transantiago

Julio Costa Zambelli julio.costa en openstreetmap.cl
Dom Abr 25 01:25:38 BST 2010


Danilo,

Los datos claramente ellos los están sacando de alguna parte, el tema es que
esa fuente es desconocida y probablemente cerrada. Veo dos alternativas, una
es contactar a algún poderoso del MTT (léase @fmorande) y preguntar a ellos
si hay alguna forma de acceder a los datos (esto idealmente con un demo en
mano), y dos contactar directamente al SIMT y ver si ellos quieren proveer
una fuente de datos como la gente.

Saludos,

Julio Costa

2010/4/24 Danilo Lacoste <danilo en lacosox.org>

> wow! no tenia idea que este servicio estaba en "beta".
>
> como decias antes Julio, yo tengo la misma idea.  poder crear un demo
> util con un solo recorrido o con un tramo de alguno , que permita
> poder "demostrar"  que la ide se puede aplicar a todos..
>
>
> claro que con estos servidores no sé cual será el futuro de nuestras
> ideas...
>
>
> alguien sabe si existe otra forma de acceder a los datos?  algun otro
> servidor oculto quizás??
>
>
>
> saludos.
>
> On 4/23/10, Julio Costa Zambelli <julio.costa en openstreetmap.cl> wrote:
> > Danilo,
> >
> > Puedes ser por la demanda, pero de todas maneras es impresentable para un
> > servicio que ni si quiera ha sido anunciado. ¿Cuantas consultas
> simultaneas
> > podrá estar teniendo ahora? En mi opinión, con suerte una consulta a la
> vez.
> > ¿Como pensaran funcionar cuando la demanda sea en serio? Es decir cuando
> > realmente puedan tener múltiples consultas simultaneas.
> >
> > Esta claro que el trabajo pesado del servidor esta en recibir minuto a
> > minuto la información de todos los buses, y hacer los cálculos de los
> > paraderos respecto de estos. Pero se supone que Wireless-IQ es
> subsidiaria
> > de Sonda, por lo que supongo también que no tienen problemas para acceder
> a
> > unos cuantos servidores que puedan hacer este trabajo.
> >
> > Respecto del calculo historico, es una posibilidad. Pienso que debiéramos
> > definir que queremos hacer, porque esto en la practica es un proyecto
> > paralelo a OSM, en que estamos haciendo una demostración útil de lo que
> se
> > puede lograr combinando sus datos con otras fuentes. Por lo mismo no creo
> > que necesitemos hacer un demo con todo el sistema de transporte, sino
> solo
> > con un recorrido, luego se le podría mostrar eso a la gente que tenga la
> > capacidad de "cortar el queque" respecto del acceso a los datos "crudos"
> > generales, idealmente en un flujo lo suficientemente rápido.
> >
> > Saludos,
> >
> > Julio Costa
> >
> >
> > 2010/4/23 Danilo Lacoste <danilo en lacosox.org>
> >
> >> o quizá murió por exceso de consultas?
> >>
> >> deberíamos tener una copia de todos los datos, de esa forma
> >> aseguraríamos quizá poder calcular velocidades históricas o no?
> >>
> >> 2010/4/23 Julio Costa Zambelli <julio.costa en openstreetmap.cl>:
> >> > Bajaron el sitio del SIMT nuevamente :( Hay que conseguir una fuente
> >> > confiable para estos datos...
> >> >
> >> >
> >> > 2010/4/23 Herman Vega <hvegax en gmail.com>
> >> >>
> >> >> 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 <julio.costa en openstreetmap.cl>
> >> >>>
> >> >>> 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>
> <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 <hvegax en gmail.com>
> >> >>>>
> >> >>>> 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 <danilo en lacosox.org>
> >> >>>>>
> >> >>>>> 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:
> >> >>>>>
> >> >>>>> dalacost en 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
> >> >>>>> Talk-cl en openstreetmap.org
> >> >>>>> http://lists.openstreetmap.org/listinfo/talk-cl
> >> >>>>>
> >> >>>>
> >> >>>>
> >> >>>>
> >> >>>> --
> >> >>>> Herman  Vega  Jara
> >> >>>> hvegax[a]gmail.com
> >> >>>>
> >> >>>> _______________________________________________
> >> >>>> Talk-cl mailing list
> >> >>>> Talk-cl en openstreetmap.org
> >> >>>> http://lists.openstreetmap.org/listinfo/talk-cl
> >> >>>>
> >> >>>
> >> >>
> >> >>
> >> >>
> >> >> --
> >> >> Herman  Vega  Jara
> >> >> hvegax[a]gmail.com
> >> >
> >> >
> >>
> >>
> >>
> >> --
> >> www.lacosox.org
> >>
> >
>
>
> --
> www.lacosox.org
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.openstreetmap.org/pipermail/talk-cl/attachments/20100424/a2a1d469/attachment.html>


More information about the Talk-cl mailing list