python
  • url
  • google-api
  • google-ajax-api
  • 2010-01-20 3 views 1 likes 
    1

    J'ai des chaînes telles quePréparer une chaîne pour Google Ajax Search?

    ["Tabula Rasa", "façade", "DJ Tiësto"] 
    

    Je suis accès à l'API Google Ajax dans Python en utilisant l'URL de base:

    base = 'http://ajax.googleapis.com/ajax/services/search/web' 
        '?v=1.0&q=%s' 
    

    Je rencontre des problèmes en utilisant ces chaînes simples et remarqué que j'ai pour transformer certains caractères,

    eg. "Tabula Rasa" --> "Tabula%20Rasa" 
    

    Mais j'ai une énorme liste de ces chaînes et je ne sais pas De toute façon, je peux préparer automatiquement ces chaînes pour la requête d'URL.

    Toute aide serait grandement appréciée.

    Répondre

    2

    Qu'est-ce que vous cherchez est urllib.quote():

    >>> urllib.quote("Tabula Rasa") 
    'Tabula%20Rasa' 
    

    Les chaînes non-ASCII peuvent avoir besoin d'être recodé dans l'encodage attendu par l'API Google AJAX, si vous n'avez pas eux dans le même codage déjà.

    +0

    Merci beaucoup pour votre réponse. Comment continuer avec les caractères Unicode? Ou des caractères extraits d'une page html? – RadiantHex

    +1

    Si vous avez unicode, vous devez d'abord l'encoder dans l'encodage attendu par l'API AJAX de Google (probablement UTF-8, donc 'data.encode ('utf-8')'.) Si vous avez des caractères extraits d'un HTML page, j'espère que vous les avez dans une chaîne unicode - mais si vous les avez comme un bytestring, décodez-les en utilisant l'encodage utilisé par la page Web. Ensuite, vous encoder dans le bon encodage comme tout autre objet Unicode. –

    +0

    Merci Thomas. En effet très utile! :) Je vais regarder ça. – RadiantHex

    Questions connexes