2011-03-08 1 views
0

J'essaie d'utiliser la bibliothèque xgoogle python dans le but de saisir un terme et de renvoyer le nombre de résultats de recherche qui s'y rapportent. Voici mon code:La bibliothèque xgoogle échoue avec AttributeError

from xgoogle.search import GoogleSearch 
word1 = 'aardvark' 
word2 = 'ablaze' 
words = word1,"",word2 
gs = GoogleSearch(words) 
num = gs.num_results 
print num 

C'est de retour « retraçage (le plus récent appel dernier):

File "F:\google whack\SearchTest.py", line 6, in <module> 
    num = gs.num_results 
    File "C:\Python27\xgoogle\search.py", line 89, in num_results 
    page = self._get_results_page() 
    File "C:\Python27\xgoogle\search.py", line 189, in _get_results_page 
    safe_url = [url % { 'query': urllib.quote_plus(self.query), 
    File "C:\Python27\lib\urllib.py", line 1245, in quote_plus 
    return quote(s, safe) 
    File "C:\Python27\lib\urllib.py", line 1236, in quote 
    if not s.rstrip(safe): 

AttributeError: 'tuple' object has no attribute 'rstrip'' 

Si quelqu'un sait comment faire ce retour le nombre de résultats, l'aide est très apprécié! !! Merci!!!

Répondre

1

Vous passez le words sous la forme d'un tuple. Essayez de concaténer les mots ensemble au lieu:

gs = GoogleSearch(word1 + " " + word2) 
+0

ou gs = GoogleSearch ('' .join (mot1, mot2, mot3)) –

1

Passer une chaîne est plus simple - il n'y a pas besoin de créer plusieurs variables.

gs = GoogleSearch("hello world") 

Ou, si vous avez des chaînes liées à plusieurs variables, vous pouvez les rejoindre, comme @samplebias suggère, bien qu'il a oublié que join() ne prend qu'un seul paramètre, généralement un tuple.

gs = GoogleSearch(' '.join((word1, word2, word3))) 

Notez la paire supplémentaire de parenthèses.