Acceso a web

Josep Cdgir josepgimbernat en cdgir.com
Jue Mayo 18 14:01:41 CEST 2006


Hola Maria,
>¿Como podría conectarme a una determinada página web desde mi programa?
> Por ejemplo, conectarte a google, y hacer búsquedas.
>Por cierto, estoy trabajando en windows.

aqui tienes un pequeño ejemplo encontrado en internet:

#!/usr/bin/env python
 
 
 ##############################################################
 # Programa desarrollado por T. Javier Robles Prado          
 # Informar bugs o sugerencias a tjavier en usuarios.retecal.es #
 # Visite http://users.servicios.retecal.es/tjavier           
 ##############################################################
 
 #Este programa hace una consulta en google y devuelve los resultados
 #ejemplo de uso:
 
 #[jav en eva python]$ python -i google.py
 #>>> google('programacion python principiantes', 8)
 #http://users.servicios.retecal.es/tjavier/
 #http://www.abcdatos.com/tutoriales/tutorial/l5248.html
 #http://www.abcdatos.com/tutoriales/programacion/python.html
 #http://www.maestrosdelweb.com/editorial/python
 #http://www.maestrosdelweb.com/editorial/index.php?cat=3
 #http://es.tldp.org/COMO-INSFLUG/COMOs/Lenguajes-Programacion-miniCOMO/
 #http://ar.dir.yahoo.com/Internet_y_computadoras/Programacion_y_desarrollo/
 #http://es.dir.yahoo.com/Internet_y_ordenadores/Programacion_y_desarrollo/
 
 
import httplib
 
URL                 = 'www.google.com'
COD_BUSQUEDA        = '/search?num=100&q='
CABECERA        = ' <b>...</b> \n<br><font color=#008000>'
FIN                = ' '
NUM_RESULTADOS        = 10
MAX_RESULTADOS  = 50
 
def formateaQuery(query):
    from string import join
    a = query.split()
    return join(a, '+')
 
def google(query = None , n = None):
    if n is None:
        n = NUM_RESULTADOS
                 
    if query is None:
        print "No se ha efectuado búsqueda"
        return - 1
         
    busqueda = run (query,n)
         
    if busqueda == -2:
        print 'Tu búsqueda para %s no ha arrojado resultados.' % 
(query.replace('+',' '))
        return 
    if busqueda == -1:
        print 'No se ha podido efectuar la conexión'
        return
 
    for x in busqueda:
        print x
 
def run(query , n):
    try:
        conn = httplib.HTTPConnection(URL)
        conn.request ("GET", COD_BUSQUEDA + formateaQuery(query))
        r = conn.getresponse()  
    except:
        print 'No se ha podido efectuar la conexión'
        return -1
                 
    if r.reason == 'OK':
        data = r.read()
    else:
        return -1
    conn.close()
    aux = data.split(CABECERA)
    #Hay que desechar el primer elemento
    aux.pop(0)
    if len(aux) == 0:
        return -2
                 
    busqueda = []
    i = 0
    while n != 0 and i < MAX_RESULTADOS:
        print aux[i]
        try:
            a =  aux[i].split(FIN,2)[0]
            if a != '':
                busqueda.append('http://'+a)
                n -=  1
        except:
            pass
            i +=  1
    print busqueda
    return busqueda
                        
run('hombre',10)
 
   
>Otra cosa, ¿Existe la posibilidad de llamar a un ejecutable para poder 
>trabajar con él desde el programa? Tengo un compresor,y quería acceder a él 
>desde el programa para poder comprimir archivos  

import os
os.system('comando_o_programa_ejecutable parametros')

y si quieres capturar la salida de dicho programa

import commands
resultado=commands.getoutput('comando_o_programa_ejecutable parametros')

Espero te sirva

Josep




Más información sobre la lista de distribución Python-es