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
