Desarrollando un Buscador en PHP + VBasic

Diciembre 11, 2007

Gastando el Tiempo, he estado haciendo un “SPIDER” en VBasic + PHP y he aqui algunas de las caracteriticas basicas:

  • Maneja una “humilde” base de datos en access 97 (modo local)
  • Base de Datos mySQl en el servidor
  • Escanea la red 24 horas en busca de Contenido
  • Parsea RSS - XML leyendo el DOM del documento
  • Ingresa Nuevos Vinculos y Fuentes RSS a Access
  • Sube las nuevas paginas al servidor Mediante POST
  • Implementa un servicio de Difusion de Noticias por TrackBacs a los Blogs Indexados.
  • Luego Publica las Noticias a algunos Blogs por medio del email (blogger)

Esta es una Fotico del “Poderoso Spider”

Spider Visual Basic

La Lectura de los RSS se hace a travez del Objeto IXML que viene con VBasic6 (Todavia no unso NET)

On Error Resume Next
    Dim IXMLDOMNode As IXMLDOMNode
    Set DOMDocument = New DOMDocument
   
    ‘Carga el archivo xml
    Flag = False
    Barra1.Value = 0
    DOMDocument.abort
    CargaX = DOMDocument.Load(ArchivoXml)

Acto seguido el Archivo es leido y luego se le extraen todos Vinculos a Noticias y Articulos Publicados por Periodicos o Blogs.

 La funcion que “analiza” es recursiva y analiza cada uno de los elementos del RSS y es mas menos asi:

Private Sub Romper(oNode As MSXML2.IXMLDOMNode)
On Error Resume Next
    Dim IXMLDOMNode As IXMLDOMNode, Node As Node, Nodo As Node
   
    If (UCase(oNode.baseName) = “ITEM”) Or (UCase(oNode.baseName) = “ENTRY”) Then
        Barra2.Value = Barra2.Value + 1
        UnaPagina oNode, Titulo, Descripcion, Link, Data
        Call MeterBD(Titulo, Descripcion, Link, Data)
    Else
        If oNode.childNodes.length > 0 Then
            For Each IXMLDOMNode In oNode.childNodes
                Titulo = “”: Descripcion = “”: Link = “”: Data = “”
                Call Romper(IXMLDOMNode)
                DoEvents
            Next
        End If
    End If
End Sub

Una  vez analizado el documento RSS ….

 ( un documento RSS es un Archivo que contiene Vinculos e Informacion de Noticias y se actualiza Periodicamente y casi tooodos los periodicos del mundo poseen uno, tambien lo poseen los Blogs, Paginas hechas con Joomla, Nuke, etc, etc )

Son extraidas las noticias (usualmente 10 - 15 por cada RSS )  y estas son enviadas al servidor para que puedan ser usadas como Resultados de Busquedas (pienso quitarle el trabajo a google), En el servidor hay un PHP que espera por esos datos y los ingresa a la mySQL BD.

Los Datos son enviados con POST directamente desde el “SPIDER”

‘Parámetros en formato URLEncode
     params = “t=” & Titulo & “&p=” & Descripcion & “&d=” & Link & “&dt=” & Data
     ‘Metodo a usar, url, y true en caso de manejar la respuesta en modo asíncrono
     DomDoc.open “POST”, UrlStr, False
     ‘encabezados
     DomDoc.setRequestHeader “Content-type”, “application/x-www-form-urlencoded”
     DomDoc.setRequestHeader “Content-length”, Len(params)
     DomDoc.setRequestHeader “Connection”, “close”
     DomDoc.send params
     ‘La respuesta, en caso de existir, está en responseBody.
    ‘También puedes especificar responseXml si tu aplicación devolviese XML

     strHtml = StrConv(DomDoc.responseBody, vbUnicode)

Lo mejor de usar el metodo de envio por POST es que se puede enviar gran cantidad de datos y a’emas estos pueden contener caracteres “raros” (%20…etcetera)

 Luego el PHP los recibe y van pa dentro de la (1 TABLA)  de mySQL

—————————————————————————————

Hasta aqui la parte basica del Spider, ahora es turno de un poco de “difusion” o “publicidad”, es hora de enviar PINGS y TRACKBAKS, para ello he usado la clase trackback_cls.php la cual es de codigo libre y abierto GNU. Esta recibe llamados por POST. Los parametros son 3:

URL Blog a Pingear

URL Puerta Track.

Mensaje.

Y acto seguido en el Blog que se ha indexado en la base de datos aparece (casi siempre) como por arte de Magia un Comentario, diciendole que su URL ha sido indexada y que X Blogs son similares a el (algunos llaman Spam a ese metodo)

Pero como dijo el Español “lo Mejor es lo mejor” se usan ciertos modos “ortodoxos” de publicidad: Lease “invitaciones por Correo”, Blogs Publicitarios (Blogger es el mejor, por aquello de recibir articulos por email), Toolbars, Gadgets para la Toolbar de Google, Open serach:

Analizando lo anterior seria asi:

GADGET: Un gadget es un “añadido” que se incluye dentro ToolBars de Google y MSN y ese añadido puede ser un Boton, asi que se diseño un gadget para promocionar el sitio que mostraria los resultados de la Busqueda. He aca una fotico del gadget en funcionamiento:

Gadeget Google

LOS EMAILS: Bueno aca se hizo algo un poco mas elaborado, pues no basta con enviar 5000 correos al dia, estaba cansado que Gmail y Hotmail no dejasen cargar las imagenes  para ello se tomo una imagen 64X64 pixeles y se convirtio a una <tabla> de 64 Rows X 64 Cols y asi ya no hay foto. y por lo tanto si se puede visualizar  enlos correos.

…… continuara..

Entry Filed under: Posicionamiento Google Yahoo SEO, Tutoriales, unad, uptc. Etiquetas: , , , , , .

3 Comments Add your own

  • 1. kesussito  |  Diciembre 14, 2007 at 1:29 pm

    Hola como estas espero que bien mira esta shido tu buscador yo tambien diseño paguinas web bueno eso digo yo, Yo uso Google Adsense y pues me gusta tu web pero mas me gusta como tienes los blogs de wordpress yo e estado buscando que me diseñe algo asi por que yo no se como se hace quiero algo asi como wpfind.com lifind.com no se si con tigo puedo tratar el diseño

  • 2. kesussito  |  Diciembre 14, 2007 at 1:30 pm

    Hola como estas espero que bien mira esta shido tu buscador yo tambien diseño paguinas web bueno eso digo yo, Yo uso Google Adsense y pues me gusta tu web pero mas me gusta como tienes los blogs de wordpress yo e estado buscando que me diseñe algo asi por que yo no se como se hace quiero algo asi como wpfind.com lifind.com no se si con tigo puedo tratar el diseño mi correo electronico es jmha1914@yahoo.com.mx

  • 3. md rafique  |  Enero 10, 2008 at 6:39 am

    sir i m new in vb so plz tell me what will be best for my vb programing plz guide me

Leave a Comment

Required

Required, hidden

Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackback this post  |  Subscribe to the comments via RSS Feed


Radio & TV On-Line

Entradas recientes

Posts Más Vistos

Etiquetas

RSS TOP 10 RadioTK Live !!

Estadisticas

RSS Biblioteca Juridica Themis

Feeds

RSS Meaviso Blog Search

Blogroll

cosistel

Deporte eXtremos Duitama

sysman