Google search using python script [closed]

Posted on

Question :

Google search using python script [closed]

Could anyone help me on how to write a python script that searches google and prints the links of top results.

Asked By: sudh


Answer #1:

Maybe, something like this?

import urllib
import json as m_json
query = raw_input ( 'Query: ' )
query = urllib.urlencode ( { 'q' : query } )
response = urllib.urlopen ( '' + query ).read()
json = m_json.loads ( response )
results = json [ 'responseData' ] [ 'results' ]
for result in results:
    title = result['title']
    url = result['url']   # was URL in the original and that threw a name error exception
    print ( title + '; ' + url )

Read the docs

[Edit] As the AJAX API is dead, you can use a third party service, like SerpApi, they do provide a Python library.

Answered By: LK-

Answer #2:

Try this, its very simple to use:



Install this python package and usage is as simple as this:

# 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='', lang='es', stop=5):
Answered By: Mansoor Akram

Answer #3:

it is better suggested to use google apis
but a very ugly version.. (alternative to use google api)
you can filter content if you want

import os, urllib, sys
filename = '' + urllib.urlencode({'q': ' '.join(sys.argv[1:]) })
cmd = os.popen("lynx -dump %s" % filename)
output =
print output

it will print exactly what ever a browser should display when you search for something on google

Answered By: Shiv Deepak

Answer #4:

As @Zloy Smiertniy pointed out, the answer can be found here.

However, if you are using Python 3 the syntax of raw_input, urllib has changed, and one has to decode the response. Thus, for Python 3 one can use:

import urllib
import urllib.request
import json
url = ""
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 )
Answered By: Løiten

Answer #5:

Try the following:

import webbrowser
lib = input()
url = "" +(str(lib))+ "&oq="+(str(lib))+"&gs_l=serp.12..0i71l8."
Answered By: mayank

Answer #6:

I’m a newbie to Python. Just my simple idea for a google search.

import webbrowser
lib=raw_input("Enter what you want to search for:")
Answered By: Rohith Sankar

Answer #7:

I’ve used SERP API to accomplish this.

The instructions are fairly simple:

pip install google-search-results

and the usage is:

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

More advanced uses are on Github.

Answered By: lf2225

Answer #8:

from pygoogle import pygoogle
g = pygoogle('quake 3 arena')
g.pages = 5
print '*Found %s results*'%(g.get_result_count())
Answered By: Ronis Gracie

Leave a Reply

Your email address will not be published.