Búsqueda de Google usando script python

¿Podría alguien ayudarme a escribir un script de Python que busque en Google e imprima los enlaces de los mejores resultados?

Tal vez, algo como esto?

 importar urllib
 importar json como m_json
 query = raw_input ('Query:')
 query = urllib.urlencode ({'q': query})
 response = urllib.urlopen ('http://ajax.googleapis.com/ajax/services/search/web?v=1.0&' + query) .read ()
 json = m_json.loads (respuesta)
 results = json ['responseData'] ['results']
 por resultado en resultados:
     título = resultado ['título']
     url = result ['url'] # era la URL en el original y que lanzó una excepción de error de nombre
     imprimir (título + ';' + url)

Lea los documentos http://docs.python.org/

[Editar] Como la API de AJAX está muerta, puedes usar un servicio de terceros, como SerpApi , que proporcionan una biblioteca de Python .

Prueba esto, es muy fácil de usar: https://pypi.python.org/pypi/google

Docs: https://breakingcode.wordpress.com/2010/06/29/google-search-python/

Github: https://github.com/MarioVilas/google

Instalar este paquete de Python y su uso es tan simple como esto:

# Get the first 5 hits for "google 1.9.1 python" in Google Pakistan from google import search for url in search('google 1.9.1 python', tld='com.pk', lang='es', stop=5): print(url) 

es mejor sugerir el uso de google apis pero una versión muy fea … (alternativa al uso de google api) puede filtrar el contenido si lo desea

 import os, urllib, sys filename = 'http://www.google.com/search?' + urllib.urlencode({'q': ' '.join(sys.argv[1:]) }) cmd = os.popen("lynx -dump %s" % filename) output = cmd.read() cmd.close() print output 

imprimirá exactamente lo que un navegador debería mostrar cuando buscas algo en google

Como señaló @Zloy Smiertniy, la respuesta se puede encontrar aquí .

Sin embargo, si está utilizando Python 3 la syntax de raw_input , urllib ha cambiado, y uno tiene que decodificar la response . Por lo tanto, para Python 3 se puede usar:

 import urllib import urllib.request import json url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&" query = input("Query:") query = urllib.parse.urlencode( {'q' : query } ) response = urllib.request.urlopen (url + query ).read() data = json.loads ( response.decode() ) results = data [ 'responseData' ] [ 'results' ] for result in results: title = result['title'] url = result['url'] print ( title + '; ' + url ) 

Intente lo siguiente:

 import webbrowser lib = input() url = "https://www.google.co.in/search?q=" +(str(lib))+ "&oq="+(str(lib))+"&gs_l=serp.12..0i71l8.0.0.0.6391.0.0.0.0.0.0.0.0..0.0....0...1c..64.serp..0.0.0.UiQhpfaBsuU" webbrowser.open_new(url) 

He utilizado la API SERP para lograr esto.

Las instrucciones son bastante simples:

 pip install google-search-results 

y el uso es:

 from lib.google_search_results import GoogleSearchResults query = GoogleSearchResults({"q": "coffee"}) json_results = query.get_json() 

Los usos más avanzados están en Github.

Soy un novato en Python. Sólo mi idea simple para una búsqueda en google.

 import webbrowser lib=raw_input("Enter what you want to search for:") ur="https://www.google.co.in/gfe_rd=cr&ei=Q7nZVqSBIMSL8QeBpbOoDQ#q=" webbrowser.open_new(ur+lib) 
 from pygoogle import pygoogle g = pygoogle('quake 3 arena') g.pages = 5 print '*Found %s results*'%(g.get_result_count()) g.get_urls()