.
     
» Ajax Links          

busquedas google python

2 Abr 2009 | Escrito por: lopz | En: Python
Búsquedas en google desde python o usando python

Hola

Estos últimos días ando mirando código que tengo en mi HD y que lo escribí hace mucho tiempo, algunos míos otros modificados o usando partes de los ejemplos de las doc de python, pero hace unas semanas entró un usuario al canal de python-es en freenode a preguntar cómo podría hacer búsquedas desde python en google, y el tenía un código para esta función pero que no servía, y como no era mi código no quería tocarlo ni mirarlo y recordaba que hace tiempo había querido/necesitado hacer algo así, entones busqué el código y no funcionaba, pero cambiando unas cuantas líneas otra ves funcionó y lo pegaré aquí para que no se me olvide y sobre todo para compartirlo con otras personas que buscan mucho este tipo de cosas y creen que es realmente difícil hacerlo, pero aquí se desmiente todo.

Bueno, sin mas aquí les pego este código que busca en google según la palabra que ingreses y te mostrará los links de los resultados.

Aquí les dejo el script y como siempre solo tienes que copiarlo, pegarlo a un fichero de texto y ponerle el nombre que quieran con extensión .py pero repito, el que lo use supongo que ya sabrá lo que es python y como usar un script.


Code:

# Copyright (C) 2009 Jorge J. Lopez C. <lowlifebob[at]gmail[point]com>
# weblog : http://www.lopz.org

import httplib
import re
from sgmllib import SGMLParser

const_dom = "www.google.com.bo"
const_url = "/search?as_q=%s&hl=es&num=%s&safe=off"

class atag(SGMLParser):
   def reset(self):
      SGMLParser.reset(self)
      self.urls = []

   def start_a(self, attrs):
      href = [x for y, x in attrs if y=='href']
      if href:
         self.urls.extend(href)

def download(dom, url, query, num):
   headers = {
            "User-Agent": "Mozilla/5.0 (X11; U; Linux i686; es-ES; \
             rv:1.9.0.3) Gecko/2008092416 Firefox/3.0.3",
            "Accept": "text/html,application/xhtml+xml,application/ \
            xml;q=0.9,*/*;q=0.8",
            "Accept-Language": "es-es,es;q=0.8,en-us;q=0.5,en;q=0.3",
            "Accept-Charset": "UTF-8,*",
            "Keep-Alive": "300",
            "Proxy-Connection": "keep-alive",
            }

   # conectamos con el servidor
   conn = httplib.HTTPConnection(dom, 80)
   # hacemos la peticion a la imagen
   conn.request ("GET", url % (query, num), None, headers)
   resp = conn.getresponse()
   return resp

def get_links(dom, url, query, num):
   query = query.replace(' ','+')   
   ident = re.compile("related:")
   listalinks = []
   #descargamos la pagina
   resp = download(dom, url, query, num)
   html = resp.read()
   #extraemos todos los links
   links = atag()
   links.feed(html)
   links.close()

   for x in links.urls:
      if ident.search(x):
         url = x.replace("/search?hl=es&safe=off&q=related:","http://")
         listalinks.append(url)
   return listalinks

query = raw_input('Palabra a buscar :')
#num = raw_input('Numero de resultados: ')
links = get_links(const_dom, const_url, query, num=10)

for link in links:
   print link


y bueno, como siempre un pequeño ss funcionando.



Saludos!!

PD, por cierto, esta función puedes ponerle a un bot de IRC, realizar un crawler, etc


   

 
 

Envia tu Comentario:
Los comentarios ofensivos o fuera de lugar seran borrados.
BBcode: on
Smilies: on
Nick:


smile wink surprised tongue lol sad angry cry 



Status: Comentario aun no enviado


Powered by MySql' Powered by PHP XHTML Valido CSS Valido

Tiempo de carga del servidor: 0.0388