raspar resultados de google con python

Me gustaría obtener el número de resultados estimado de google para una palabra clave. Estoy usando Python3.3 y trato de realizar esta tarea con BeautifulSoup y urllib.request. Este es mi código simple hasta ahora

def numResults(): try: page_google = '''http://www.google.de/#output=search&sclient=psy-ab&q=pokerbonus&oq=pokerbonus&gs_l=hp.3..0i10l2j0i10i30l2.16503.18949.0.20819.10.9.0.1.1.0.413.2110.2-6j1j1.8.0....0...1c.1.19.psy-ab.FEBvxrgi0KU&pbx=1&bav=on.2,or.r_qf.&bvm=bv.48705608,d.Yms&''' req_google = Request(page_google) req_google.add_header('User Agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20120427 Firefox/15.0a1') html_google = urlopen(req_google).read() soup = BeautifulSoup(html_google) scounttext = soup.find('div', id='resultStats') except URLError as e: print(e) return scounttext 

Mi problema es que mi variable de sopa está codificada de alguna manera y que no puedo obtener ninguna información de ella. Así que vuelvo a Ninguno porque soup.find no funciona.

¿Qué estoy haciendo mal y cómo puedo extraer los resultados deseados? ¡Muchas gracias!

Si aún no ha resuelto este problema, parece que la razón por la que BeautifulSoup no encuentra nada es que los resultados de Stats nunca aparecen en la sopa: su solicitud (page_google) solo devuelve JavaScript, no resultados de búsqueda que el JavaScript es dinámicamente cargando. Puede verificar esto agregando un

 print(soup) 

comando a su código y verá que el div resultStats no aparece.

El siguiente código:

 import sys from urllib2 import Request, urlopen import urllib from bs4 import BeautifulSoup query = 'pokerbonus' url = "http://www.google.de/search?q=%s" % urllib.quote_plus(query) req_google = Request(url) req_google.add_header('User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3') html_google = urlopen(req_google).read() soup = BeautifulSoup(html_google) scounttext = soup.find('div', id='resultStats') print(scounttext) 

Imprimirá

 
Ungefähr 1.060.000 Ergebnisse

Por último, usar una herramienta como Selenium Webdriver podría ser una mejor manera de resolver esto, ya que Google no permite que los robots rasguen los resultados de búsqueda.