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
