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