Loading




Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
PHP, funcionalidad awk/grep?
 
10-08-2011, 12:07 PM
Mensaje: #1
PHP, funcionalidad awk/grep?
Buenas.
Quería saber si hay alguna forma de procesar, mediante PHP, una página web para obtener una sección del código.

En definitiva, tengo esto:
Código:
public function applet() {
    print ('<div id="busca-cuit">');
    print ('<form name="search" method="POST" action="http://www.busca-cuit.com.ar/" target="_blank" rel="nofollow">
    <table width="99%"><tr><td>
    <label>Nombre o CUIT: </label><input id="input-search" class="search" type="text" name="s" value="" size="28" maxlength="100" />
    <input type="submit" title="Submit"></td></tr></table></form>');
    print ('</div>');
}

Así como está, al pulsar el botón abre otra ventana del navegador donde me devuelve la página con los resultados.

Ahora bien, lo que me interesaría es poder tomar solamente los resultados y mostrarlos dentro de la misma función.

He visto que al realizar esa búsqueda, los resultados están dentro de un DIV llamado "resultados".
Es posible parsear la página, usar algo tipo grep o awk para procesar esa página y mostrar sólo el DIV que me interesa?

gracias!

Reglas del Foro | : ? : | Doragonraidā
Visita su sitio web Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
 
10-08-2011, 01:06 PM
Mensaje: #2
RE: PHP, funcionalidad awk/grep?
mmhhh... lo que yo haria es que alguna funcion tipo
preg_match() busque el div (suponiendo que hay un solo
div con ese id, resultados) y despues que encuentre el ultimo
/div y que me devuelva todo lo que hay entre medio.

o sino, con mas tiempo, leeria los ejemplos de codigo
que hay en php.net y en http://www.phpclasses.org/

seguro que ya lo hicieron antes y de una manera menos
chapucera de la que se me ocurre a mi..

para usar alguna funcionalidad del SO creo que primero habria
que salvar el archivo a disco y despues usar la funcion sistem()
de php para ejecutar awk p.ej.

saludos y avantti...!!

No digas que eres usuario de GNU/Linux... just do it...!!
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
 
10-08-2011, 03:13 PM (Este mensaje fue modificado por última vez en: 10-08-2011 03:15 PM por p_eter.)
Mensaje: #3
RE: PHP, funcionalidad awk/grep?
Sin responder de manera específica a la inquietud.

Hay varias página/servicios que brindan info adicional de valor, además de la clásica "validación-CUIT".. Antes que parsear y quitar su crédito - sustento.. pondría un frame.. hum, no sé. Va en gusto del consumidor. Hay varias.. hasta se me pasó hacer una más que habría que darle toque diferenciador. Pero vale la pena? La data creo la va publicando la propia AFIP. Sería lógico ellos den el servicio web., alguna vez.

Off Lo que aún no procuré es la tabla de Códigos Postales Argentinos.. Alguien la tiene?
Ídem anterior, debería ser pública como en otros países.
Visita su sitio web Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
 
10-08-2011, 03:53 PM
Mensaje: #4
RE: PHP, funcionalidad awk/grep?
(10-08-2011 03:13 PM)p_eter escribió:  Hay varias página/servicios que brindan info adicional de valor, además de la clásica "validación-CUIT".. Antes que parsear y quitar su crédito - sustento.. pondría un frame.. hum, no sé. Va en gusto del consumidor. Hay varias.. hasta se me pasó hacer una más que habría que darle toque diferenciador. Pero vale la pena? La data creo la va publicando la propia AFIP. Sería lógico ellos den el servicio web., alguna vez.
La idea es mostrar de manera "limpia", sin publicidad.
Actualmente uso www.busca-cuit.com.ar, ya que permite buscar por nombre y por CUIT. Si recuerdo bien, AFIP permite buscar por CUIT solamente.

El porqué estoy buscando tomar solo los resultados en lugar de usar un frame para cargar la web externa, es porque estoy incursionando en un framework llamado Epesi.
EpesiBIM es un proyecto opensource, mezcla de CRM y BugTracker... quizá no tan poderoso como SugarCRM, pero mucho más simple.
Incorpora el cliente de correo RoundCube y habilita el uso de skype para llamadas (obvio, si disponés del servicio de llamada a fijo), asi que tenés todo en uno.

Aún cuando no figuro en ningún lado, estuve ayudando a los desarrolladores a traducir toda la interfaz al español, ya que no estaba disponible.
Con el framework de Epesi se pueden generar applets personalizadas con cualquier contenido dentro de la misma aplicación.
Por eso ya estuve armando una para búsqueda en páginas blancas y otra para busqueda de CUIT.
Hasta ahora logré que me abra una ventana nueva con el resultado, pero me gustaría que el resultado apareciera dentro del applet, para no tener que "salir" del framework.

Al ser un CRM all-in-one, lo mejor sería que si tenés que buscar un CUIT de un cliente, lo consultás, lo copiás y pegás, sin tener que cambiar de ventana.

(10-08-2011 03:13 PM)p_eter escribió:  Off Lo que aún no procuré es la tabla de Códigos Postales Argentinos.. Alguien la tiene?
Ídem anterior, debería ser pública como en otros países.
en cuanto a códigos postales: http://www.datacraft.com.ar/postal.html, muy completo

Reglas del Foro | : ? : | Doragonraidā
Visita su sitio web Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
 
10-08-2011, 04:25 PM
Mensaje: #5
RE: PHP, funcionalidad awk/grep?
Hola, lo mejor sería ver si alguna devuelve xml, como servicio, si no queda parsear el html.

Hay 2 maneras de hacer esto, una es con php simple html http://simplehtmldom.sourceforge.net/
Otra es con domdocument de php http://www.php.net/manual/es/class.domdocument.php

Yo se que tengo algo por ahi que extraia datos de weather.com, es más, recuerdo haberlo modificado para extraer resultados de google news, si lo encuentro lo pego.

Saludos.

- La seguridad es más importante que la usabilidad. En un mundo perfecto, nadie debería ser capaz de utilizar nada.
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
 
10-08-2011, 06:16 PM (Este mensaje fue modificado por última vez en: 10-08-2011 06:46 PM por p_eter.)
Mensaje: #6
RE: PHP, funcionalidad awk/grep?
Si mal no recuerdo, AFIP da los archivos CUIT-etc. actualizados, para bajar.

Algo a considerar en las búsquedas web, es que si buscas por Nombre ( ya que suelen haber diferencias de denominación), no siempre te devolverá 1 CUIT.
Tampoco me parece algo fiable, las páginas con publicidad, como para confiarle una comprobación de CUIT para una aplicación empresarial. Como consulta extra, va.

Gracias por Datacraft, aunque la idea era bajar archivo, pref. plano. Correo argentino lo vendía, con restricciones.
También por compartir Epesi!
Lic MIT. Parece hay versión FREE y de pago, no? En la free dice tener "School Register with student and courses management", si? estaría interesante para ese nicho, si suman gestión similar ERP.
Visita su sitio web Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
 
10-08-2011, 07:09 PM
Mensaje: #7
RE: PHP, funcionalidad awk/grep?
Si, el archivo de AFIP se puede bajar, pero son como 15 MB de texto plano.
Un poco incómodo como para subirlo y hacer lectura desde PHP.

Lo que estoy viendo es que quedaría mejor algo con AJAX.
tener el campo de texto, el botón y al pulsarlo que vaya agregando el resultado bajo el formulario.
si aparecen muchos resultados, por ejemplo "Sucesión Cardozo", luego se puede ir acotando, agregando nombres u otras denominaciones.

Como busca-cuit devuelve un <div class="results"> y dentro una tabla con el resultado... es relativamente fácil obtener sólo los resultados de la búsqueda.

Encontré que el parser "simple_html_dom.php" (gracias magtec) es sencillo de utilizar, por lo que solo tengo que resolver la parte de ajax para que sea "live"

En cuanto a Epesi.
Lo de pago es sólo si querés que ellos te provean SAAS. Ellos te hostean la aplicación y vos le pagás el soporte/mantenimiento.
Por lo demás, te podés bajar el source y montarte un webserver. No hay impedimentos (salvo, claro, las licencias de algunos módulos comerciales).
En la página de créditos hay una recopilación de los módulos usados no desarrollados por ellos.

Para School Register, se usan los módulos de Compañías y Contactos.
Sólo hace falta hacer algunas traducciones "custom" para cambiarle los nombres a los campos que hagan falta. Esos mismos módulos + Agenda, se pueden usar para gestionar turnos médicos... Se ve que es bastante flexible.

Reglas del Foro | : ? : | Doragonraidā
Visita su sitio web Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
 
10-08-2011, 07:14 PM
Mensaje: #8
RE: PHP, funcionalidad awk/grep?
dragonauta, podés realizar la llamada con ajax y devolver el resultado a un div en lugar de abrir en una nueva ventana, es algo muy simple y no requiere esfuerzo adicional 1-smile

- La seguridad es más importante que la usabilidad. En un mundo perfecto, nadie debería ser capaz de utilizar nada.
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
 
10-08-2011, 07:44 PM
Mensaje: #9
RE: PHP, funcionalidad awk/grep?
(10-08-2011 07:14 PM)magtec escribió:  no requiere esfuerzo adicional 1-smile
para alguien que sabe programar en PHP, Biggrinjester

Reglas del Foro | : ? : | Doragonraidā
Visita su sitio web Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
 
10-08-2011, 08:37 PM
Mensaje: #10
RE: PHP, funcionalidad awk/grep?
No es php, solo una funcion javascript: http://blog.nnatali.com/2009/07/27/ajax-...en-un-div/
ejemplo de uso de la página:
Código:
<a href="javascript:Carga(cargar.html, 'contenido');" title="Cargar contenido">Cargar contenido</a>
ejemplo de uso en tu caso:
Código:
<div id="cuil"> </div>
<script> Carga(cuil.php, 'cuil'); </script>
Pegas el codigo javascript de la página en el head o en un archivo .js y el que te acabo de pasar luego del div con id cuil 1-wink

Funciones js necesarias(de la web):
Código:
function Carga(url,id)
{
//Creamos un objeto dependiendo del navegador
var objeto;
if (window.XMLHttpRequest)
{
//Mozilla, Safari, etc
objeto = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
//Nuestro querido IE
try {
objeto = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try { //Version mas antigua
objeto = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!objeto)
{
alert("No ha sido posible crear un objeto de XMLHttpRequest");
}
//Cuando XMLHttpRequest cambie de estado, ejecutamos esta funcion
objeto.onreadystatechange=function()
{
cargarobjeto(objeto,id)
}
objeto.open('GET', url, true) // indicamos con el método open la url a cargar de manera asíncrona
objeto.send(null) // Enviamos los datos con el metodo send
}

function cargarobjeto(objeto, id)
{
if (objeto.readyState == 4) //si se ha cargado completamente
document.getElementById(id).innerHTML=objeto.responseText
else //en caso contrario, mostramos un gif simulando una precarga
document.getElementById(id).innerHTML='<img src="loader.gif" alt="cargando" />'
}

- La seguridad es más importante que la usabilidad. En un mundo perfecto, nadie debería ser capaz de utilizar nada.
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
Enviar respuesta 


Salto de foro:


Usuario(s) navegando en este tema: 1 invitado(s)
Contáctanos | Portal de Noticias | Volver arriba | Volver al contenido | Archivo (Modo simple) | Sindicación RSS