BULMA

Bulma se une a la protesta contra SOPA y PIPA

Bergantells Usuaris de GNU/Linux de Mallorca i Afegitons   |   Bisoños Usuarios de GNU/Linux de Mallorca y Alrededores
CONTENIDOS
. Jornadas de software libre
. Version para PDA
. Enlaces breves
. La asociacion
. Los mas leidos
. Autores [Actividad]
. Ultimos Comentarios
. Todos los titulares!
. Estadisticas
. Guia de estilo
. ¿Sugerencias?
. Wiki
. XML [Ayuda]
Listas de correo
. Archivos bulmailing
. Archivos BulmaGes
Radio libre :-)
. Des de la Xarxa (Archivos)
. Mallorca en Xarxa
Busquedas

+ Enlaces Linux
Ultimos kernels
(24/04/2014 03:21:31)
    
Google


En bulma.net
En internet
Traduccions i screen scraping (8954 lectures)
Por Antoni Aloy López
aaloy (http://trespams.com)
Creado el 14/10/2007 13:01 modificado el 06/11/2007 18:39

Amb un grapat de línees de codi python podem tenir un sistema de traducció per les nostres aplicacions sempre que tinguin connexió a Internet.

Actualització

En Juan Hevilla ens ha enviat un petit programa fet amb wxPython que permet fer traduccions de l'anglès al castellà del que tinguem al portapapers (es permeten modificacions) que aprofita el codi d'aquest exemple. És a més un bon exemple de com es poden fer aplicacions amb WxPython. Gràcies Juan!
Traducción: Internostrum

Actualización

Juan Hevilla nos ha enviado una pequeña utilidad realizada en wxPython que nos permite traducir el texto que tengamos en el portapapeles del inglés al castellano (se permiten modificaciones) que aprovecha el código de este ejemplo. Es además un buen ejemplo de cómo realizar apliaciones wxPython. ¡Gracias Juan!.


Pagina1/1

Google, Altavista, Gencat, o Internostrum, per exemple ens ofereixen serveis de traducció per la web, que ens poden anar molt bé per a creació d'aplicacions que necessitin tirar de traduccions ràpides com a ajuda a l'usuari.

Les traduccións del Gencat i Internostrum són especialment bones, encara que Gencat no és precisament ràpid.

La idea és accedir mitjançant un script a algun d'aquests serveis, enviar la traducció que volem fer i després recuperar el resultat de la traducció per mostrar-ho a la nostra aplicació.

.

Per l'exemple utilitzaré Google, ja que és un dels més complexes, no tant per la quantitat de paràmetres que fa servir (Gencat per exemple en té més) sinó perquè permet veure com podem enviar també capçaleres http, ja que Google ens donarà un error de pàgina prohibida si no identificam el navegador.

Les llibreries de Python que ens serviran per accedir a la pàgina de traducció són urllib i urllib2. En pàgines que no necessiten massa cosa urllib ja és suficient, però si necessitam com en el cas de Google, enviar informació addicional o autentificar-nos, necessitarem la llibreria urllib2

El que feim és doncs crear un diccionari amb els paràmetres del POST que hem de passar, params en el nostre exemple, i transformar-lo en una cadena apta per la seva transmissió per Internet, això ho feim amb

data = urllib.urlencode(params)

Com que hen d'identificar el navegador, hem de passar un diccionari amb les capçaleres http que vulguem afegir

headers = { 'User-Agent' : user_agent }

per l'user agent, he anat a la utilitat d'identificació de Konqueror i he generat i copiat la identificació

 user_agent = 'Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.6 (like Gecko) (Kubuntu)'

Una vegada fet això ja sols ens queda fer la connexió i obtenir la pàgina de resultats

        request = urllib2.Request(url, data,headers)        
        response = urllib2.urlopen(request)
        pagina = response.read()

Ens ens queda tractar la pàgina obtinguda i extreure'n la traducció que volem, per això utilitzarem una llibreria anomenada BeautifulSoup,, una petita meravella de codi, que ens permet tractar amb HTML i XML. En el nostre cas basta carregar el resultat obtingut amb la codificació pertinent i cercar el marcador (tag) que té la resposta

        soup = BeautifulSoup(''.join(pagina), fromEncoding='utf-8')
        traduccio =soup.find('div',{'id':'result_box'})    
        return traduccio.renderContents().strip()

La resta de codi ja sols és un poc de gestió d'errors i poca cosa, més. Fixau-vos com podem generar fàcilment un arxiu temporal per deixar la pàgina si les coses no van bé. Con se sol dir, Python ve amb les bateries incloses.

Esper que us sigui d'utilitat. Els altres serveis de traducció són molt semblants i es deixen com a exercici pel lector.

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# Autor: aaloy
# -------------------------------------------------------------------
"""
    Emprant google com a traductor    
"""
import urllib
import urllib2
from BeautifulSoup import BeautifulSoup
from tempfile import mkstemp
def traductor(text,direccio):
    url = "http://www.google.com/translate_t"
    params ={ 
    'hl':'en',
    "ie":"UTF8",
    'text':text,
    "langpair":direccio,
    }
    # Hem d'indidicar el user agent o ens donarà un error Forbidden
    user_agent = 'Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.6 (like Gecko) (Kubuntu)'
    data = urllib.urlencode(params)
    headers = { 'User-Agent' : user_agent }
    try:
        # Si anam per get
        print "%s?%s" % (url,data)
        # Però anirem per post
        request = urllib2.Request(url, data,headers)        
        response = urllib2.urlopen(request)
        pagina = response.read()
        # I ara l'screeen scrapping 
        soup = BeautifulSoup(''.join(pagina), fromEncoding='utf-8')
        traduccio =soup.find('div',{'id':'result_box'})    
        return traduccio.renderContents().strip()
    except urllib2.HTTPError, msg:
        print "Error en la conexión, has puesto el user_agent?"
        print msg        
    except Exception, e:
        # Si hi ha error deixam el contingut dins una pàgina per a revisar-ho
        print e
        id,name = mkstemp(prefix='google_tr_', suffix='.html')
        print "Error, s'ha escrit el resultat a %s " % name
        arx = open(name,'w')
        arx.write(soup.prettify())
        arx.close()
    return None

if __name__=="__main__":
    print traductor("una patata caliente servida fría",'es|en')

    

http://www.google.com/translate_t?langpair=es%7Cen&text=una+patata+caliente+servida+fr%C3%ADa&ie=UTF8&hl=en
A buck served cold

Imprimir
Version para
imprimir

Imprimir
Version
PDF
Comentarios
Es posible que se hayan omitido algunos comentarios considerados poco constructivos
1.  Re: Traduccions i screen scraping (30/10/2007 13:50, #43203)
  Por: FrIkI (http://friki.cat)
Traducción automática: Internostrum
No es pot respondre
 
2.  Re: Traduccions i screen scraping (07/11/2007 15:50, #43208)
  Por: Anónimo
Para los W$, para evitar que salga la ventana de 'simbolo sistema' renombrar el taskbar.py a taskbar.pyw
No es pot respondre
 
3.  Re: Traduccions i screen scraping (16/12/2007 21:12, #43257)
  Por: Bytecoders (http://bytecoders.homelinux.com)
Sé que no está directamente relacionado con el tema pero que servicio de traducción recomendáis para Ingles -> Español y viceversa.
No es pot respondre
 
4.  Re: Traduccions i screen scraping (15/09/2011 08:57, #51072)
  Por: Anonimo
888Tiger3: Nike Shoes Online
No es pot respondre
 
5.  Replica Louis Vuitton (05/11/2011 07:16, #60599)
  Por: linda (www.replicalouisvuitton-usa.com)

He must urgently rush to the Replica Louis Vuitton flat ridge, because he was convinced that the Supreme Court’s death command has not been implemented. If you have already implemented, Ping Ling Urban Municipal Intermediate Court of peace officers on duty at the Replica Louis Vuitton Bags detention center at least ought to know, if has Louis Vuitton Men Bags been executed, they could immediately tell him on the phone!
May 23, 2000 early morning seven eleven, Hinton tired face, Louis Vuitton 2011 hobbled out of the Flat Ridge City Railway Station. He was standing on the square in front of his face from a distance the buildings facing the wind blowing in the wind made the roadside billboard that blew tin rumbling, rumbling in the wind Monogram Damier in this, Lo uis Vuitton Luggage Hinton quickly dial a phone number.
On this day, is also the Supreme People’s Court issued orders on the Long Little Jason sixth day of the death penalty. Eight in the morning, responsible for shooting Lo uis Vuitton Scarves flat ridge City Intermediate People’s Court judge, is responsible for oversight of the flat spot Ridge Municipal People’s Procurator ate Monogram Loui s Vuitton Shoes Damier Leather of the prosecutors and judicial police, a team of heavily armed, arrived on time flat ridge Municipal Public Security Bureau Detention Center. They produce a police detention Louis Vuitton Boots center after the order executed, made death Long Little Jason.

No es pot respondre
 
6.  Re: Replica Louis Vuitton (19/02/2012 09:47, #67779)
  Por: Vimax (http://www.vimax-pills-enlarger.com)
Gracias por tomarse el tiempo para discutir esto, me parece muy importante la información y les encanta aprender más sobre Vimax esto. Si es posible, a medida que adquiera experiencia, es de gran ayuda para mí. ¿te importaría actualizar su blog con más información. Vimax
No es pot respondre
 
7.  Moncler (21/11/2011 08:52, #65056)
  Por: Moncler (http://www.moncler-official.co.uk/)
More and more designs of Moncler Outlet Jackets are available now, Moncler UK online store are the hottest in all Moncler branch!
No es pot respondre
 
8.  Louis Vuitton UK (21/11/2011 08:52, #65058)
  Por: Louis Vuitton UK (http://www.louisvuittonsaleoutlet.co.uk/)
I received the Louis Vuitton Outlet Bags as a birthday gift in my dream, but the second day, my mother really give me the same bags from Louis Vuitton UK online store! She told me the Louis Vuitton Sale up to the lowest in 2011!
No es pot respondre
 
9.  Re: Traduccions i screen scraping (25/11/2011 15:41, #66184)
  Por: doudoune canada goose
One day, the boy Canada Goose came Doudoune Canada Goose back to the tree Canada Goose Pas cher and looked Dououne Moncler Femme sad. “Come and play with me Doudoune Moncler Homme Pas Cher ,” the tree asked the boy. Today tiffany jewelry has been very popular With doudoune canada goose more than 170 years canada goose. canada goose parka is loved canada goose pas cher and worn by many women and girls . canada goose femme is the witness and symbol of love and romance. doudoune canada gooseand canada goose femme , which do you love? Come to our site and buy the canada goose homme affordable . Your friends will be amazed to see the shiny and wonderful canada goose pas cher . canada goose parka let women be beautiful. September 18, 1837, Charles Lewis canada goose pas cher Tiffany and John B. Young in New York doudoune canada goose , 259 Broadway, founded Tiffany & Young, an exclusive stationery and fashion goods boutique < strong>canada goose chilliwack. They said that the sales of each commodity are marked "declined counter-offer cana da goose chateau." This initiative became the big news cana da goose blouson. Maybe you love customized canada goose ; however there is something canada goose parka much more special when you buy designer giubbotti canada . Designer canada donna is very different to other forms of jewelry and stands out from the crowd. giubbotti moncler donna is the good example I am karen millen outlet no longer karen millen dresses sale a kid, I don’t play karen millen dresses around trees anymore.” The boy replied karen millen coats , “I want karen millen online toys. I need money to buy them.” Sorry, Bottes Ugg Pas Cher but I don’t ugg Bottes femme have money Ugg Femme Pas Cher …but you can pick ugg classic all my apples and sell them chaussures ugg pas cher .
No es pot respondre
 
10.  wow items (27/11/2011 08:49, #66642)
  Por: Anonimo
Buy WOW Items at the leading online game store G4pwowitems.Enjoy lower Price & Instant delivery for your WOW Items.best Cheap WOW Items online provider since 2004.You can buy Items WOW such as WOW mats.We will Buy WOW Items EU for you with instant delivery.WOW Power Leveling is our primary service.We are providing the WOW Power Level.Buy the best tradable WOW Items Sale.Sell WOW Items and WOW Items For Sale.G4pwowitems.com is a specialized WOW Items Database.This article comes from the http://www.g4pwowitems.com/.
No es pot respondre
 
11.  Re: wow items (19/02/2012 09:53, #67780)
  Por: Vimax Pills (http://www.vimaxpills-spain.com)
Estoy plenamente convencido en este post, dijo. Actualmente estoy buscando la manera en que podía mejorar mis conocimientos en este tema, dijo que han publicado aquí. Que me ayuda mucho saber que usted ha compartido esta información penis enlargement pills aquí libremente. Me encanta la forma en que la gente de aquí interactuar y compartir sus opiniones también. Me gustaría seguir su futuro mensajes relacionados con el tema, dijo que son capaces de leer. VigRX Plus
No es pot respondre
 
12.  wow gold (27/11/2011 08:51, #66647)
  Por: Anonimo
WOW Gold Support gratuit et livraison express à 100% légale Gold WOW!Acheter WOW PO en vente sur la promotion de chaud en ce moment PO WOW.100% sécuritaire Buy WOW Gold bon marché et rapide WOW Gold EU!Cheap WOW Gold est une ressource indispensable Cheapest WOW Gold.Cheap Acheter WOW PO sur WoW fr site Achat WOW PO.nous fournissons toutes sortes Acheter Des PO WOW.Si vous voulez Sell WOW Gold.Achat des WOW Gold Sell à bon marché chez nous WOW PO Gratuit.Achat De Gold WOW rapide et sécurité chez WOW Gold Eur.Cet article provient de http://www.wowgolds.fr/.
No es pot respondre
 
13.  wow po (27/11/2011 08:56, #66651)
  Por: Anonimo
WOW Gold 100% fiable et sécurisé Gold WOW.Profitez de notre expérience et savoir faire pour acheter des WOW PO au prix le plus bas PO WOW.vous fournit WOW Gold EU de bon marché de pour les WOW Gold EUR.Acheter WOW Gold à bon marché chez nous WOW Gold Best Price.WOW PO Facile Rechercher le meilleur endroit pour Acheter WOW PO.Achat WOW PO et vente en ligne d'objets virtuels pour Ac heter Des PO WOW.Cet article provient de http://www.cheapwowgolds.fr/.
No es pot respondre
 
14.  Re: Traduccions i screen scraping (28/11/2011 07:50, #66891)
  Por: Anonimo (http://www.bearsjerseys-vip.com/)
Chicago Bears jersey
Bears jersey
Bears shop
Barber Marion jersey
Brian Urlacher jersey
Chester Taylor jersey
Chris Williams jersey
Customized jersey
Dan Hampton jersey
Devin Aromashodu jersey
Devin Hester jersey
Dick Butkus jersey
Gale Sayers jersey
Greg Olsen jersey
Israel Idonije jersey
Jay Cutler jersey
Jim McMahon jersey
Johnny Knox jersey
Julius Peppers jersey
Kyle Orton jersey
Lance Briggs jersey
Matt Forte jersey
Mike Ditka jersey
Mike Singletary jersey
Richard Dent jersey
Walter Payton jersey
William Perry jersey
Johnny Knox Blue Jersey
Johnny Knox Orange Jersey
Johnny Knox Orange Number Blue Jersey
Johnny Knox White Jersey
Johnny Knox Youth Orange Number Blue Jersey
Kyle Orton Blue Jersey
Kyle Orton Orange Jersey
Kyle Orton White Jersey
Devin Aromashodu Orange Jersey
Dick Butkus Big Number Throwback White Jersey
Matt Forte Black Shadow Jersey
Matt Forte Blue Jersey
Matt Forte Orange Jersey
Matt Forte Orange Number Blue Jersey
Matt Forte White Jersey
Matt Forte Youth Orange Number Blue Jersey
Devin Hester Big Number Throwback Blue Jersey
Devin Hester Black Shadow Jersey
Devin Hester Blue Jersey
Devin Hester Orange Jersey
Devin Hester Orange Number Blue Jersey
Devin Hester Throwback White Jersey
Devin Hester White Jersey
Devin Hester Youth Orange Number Blue Jersey
Barber Marion Blue Jersey
Barber Marion Orange Jersey
Barber Marion White Jersey
Chester Taylor Blue Jersey
Walter Payton Big Number Throwback Blue Jersey
Walter Payton Big Number Throwback White Jersey
Walter Payton Black Shadow Jersey
Walter Payton Orange Number Blue Jersey
Walter Payton Realtree Camo Jersey
Walter Payton Throwback Blue Jersey
Walter Payton Throwback White Jersey
Walter Payton Youth Orange Number Blue Jersey
Gale Sayers Big Number Throwback Blue Jersey
Gale Sayers Big Number Throwback White Jersey
Gale Sayers Throwback Blue Jersey
Gale Sayers Throwback White Jersey
Mike Singletary Big Number Throwback Blue Jersey
Mike Singletary Big Number Throwback White Jersey
1966 Dick Butkus Throwback Blue Jersey
1966 Dick Butkus Throwback White Jersey
Dick Butkus Big Number Throwback Blue Jersey
Dick Butkus Big Number Throwback White Jersey
Dick Butkus Orange Number Blue Jersey
Brian Urlacher Black Shadow Jersey
Brian Urlacher Blue Jersey
Brian Urlacher Orange Jersey
Brian Urlacher Orange Number Blue Jersey
Brian Urlacher Realtree Camo Jersey
Brian Urlacher Sideline Black United Jersey
Brian Urlacher White Jersey
Brian Urlacher Youth Orange Number Blue Jersey
Lance Briggs Blue Jersey
Lance Briggs Orange Jersey
Lance Briggs Orange Number Blue Jersey
Lance Briggs White Jersey
Jay Cutler Black Shadow Jersey
Jay Cutler Blue Jersey
Jay Cutler Orange Jersey
Jay Cutler Orange Number Blue Jersey
Jay Cutler Realtree Camo Jersey
Jay Cutler Red Jersey
Jay Cutler White Jersey
Jay Cutler Youth Orange Number Blue Jersey
Israel Idonije Blue Jersey
Israel Idonije Orange Jersey
Israel Idonije White Jersey
William Perry Throwback Blue Jersey
William Perry Throwback White Jersey
Chris Williams Blue Jersey
Greg Olsen Black Shadow Jersey
Greg Olsen Blue Jersey
Greg Olsen Orange Jersey
Greg Olsen White Jersey
Mike Ditka Black Shadow Jersey
Mike Ditka Blue Jersey
Mike Ditka Orange Jersey
Mike Ditka White Jersey
Jim McMahon Throwback Blue Jersey
Jim McMahon Throwback Blue JerseyWith Bear Patch
Jim McMahon Throwback White Jersey
Julius Peppers 2011 Pro Bowl NFC White Jersey
Julius Peppers Black Shadow Jersey
Julius Peppers Blue Jersey
Julius Peppers Orange Jersey
Julius Peppers Orange Number Blue Jersey
Julius Peppers White Jersey
Julius Peppers Youth Orange Number Blue Jersey
Richard Dent Throwback Blue Jersey
Richard Dent Throwback White Jersey
Dan Hampton Big Number Throwback Blue Jerseys
Dan Hampton Big Number Throwback White Jerseys
Dan Hampton Throwback Blue Jersey
Dan Hampton Throwback White Jersey
Women Brian Urlacher Blue Field Flirt Fashion Jersey
Women Brian Urlacher Pink Fem Fan Jersey
Women Brian Urlacher Pink Jersey
Women Brian Urlacher White Fem Fan Jersey
Custom Chicago Bears Blue Jersey
Custom Chicago Bears Orange Jersey
Women Devin Hester Blue Field Flirt Fashion Jersey
Women Devin Hester Pink Jersey
Women Jay Cutler Blue Field Flirt Fashion Jersey
Women Jay Cutler Pink Jersey
Women Julius Peppers White Fem Fan Jersey
Women Matt Forte Field Flirt Fashion Blue Jersey
Women Matt Forte Pink Jersey
Women Walter Payton Blue Field Flirt Fashion Jersey
Custom Women Navy Blue Field Flirt Fashion Jersey
Custom Women Navy Blue Jersey
Kid Devin Hester Blue Jersey
Kid Devin Hester White Jersey
Kid Jay Cutler Blue Jersey
Kid Jay Cutler Orange Jersey
Kid Jay Cutler White Jersey
Kid Johnny Knox Blue Jersey
Kid Johnny Knox White Jersey
Kid Julius Peppers Blue Jersey
Kid Julius Peppers White Jersey
Kid Matt Forte Blue Jersey
Kid Matt Forte Orange Jersey
Kid Matt Forte White Jersey
Kid Walter Payton Blue Jersey
Kid Walter Payton White Jersey
No es pot respondre
 
GRACIAS
Distribuciones Universal
Por el servidor
Dpto. de Matematicas e Informatica
Calificacion
***0
Vots: 4
Danos tu opinion:
**** Excelente
***0 Muy Bueno
**00 Bueno
*000 Regular
0000 Malo
SECCIONES
Noticia
Breve
Truco
Enlace
Participa
Proyecto
Articulo
Webbulma
Manoletada :-)
Seguridad
Modificado: 19/2/2012 09:53:09 | Tiempo Total: 0.041 segs | Kernel: Linux - i686 - 2.6.26-1-686 | Last boot: 21/09/2013 23:15 CEST
Powered by Apache    MySQL    PHP    Gimp