Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

perform a google search and return the number of results

The Google Web Search APIs appear to be dead (both the old SOAP and the newer AJAX). Is there a quick way to search Google for a string and return the number of results? I assume I just have to run the search and scrape the results, but I'd love to know if there's a better way.

Update: It turns out that any automated access to Google that doesn't use their new API https://developers.google.com/custom-search/json-api/v1/overview violates their terms of service, and is thus not recommended.

like image 454
PurpleVermont Avatar asked Mar 31 '15 20:03

PurpleVermont


People also ask

How do you search on Google?

Actually searching Google is pretty easy. Just type what you're interested in finding into the search box on the Google web site or into your toolbar! If you're using a toolbar, as you type, you may see words begin to appear below the toolbar's search box.


1 Answers

There is still a free API, but here is a screen-scraper:

import requests
from bs4 import BeautifulSoup
import argparse

parser = argparse.ArgumentParser(description='Get Google Count.')
parser.add_argument('word', help='word to count')
args = parser.parse_args()

r = requests.get('http://www.google.com/search',
                 params={'q':'"'+args.word+'"',
                         "tbs":"li:1"}
                )

soup = BeautifulSoup(r.text)
print soup.find('div',{'id':'resultStats'}).text

Results:

$ python g.py jones
About 223,000,000 results
$ python g.py smith
About 325,000,000 results
$ python g.py 'smith and jones'
About 54,200,000 results
$ python g.py 'alias smith and jones'
About 181,000 results
like image 169
Robᵩ Avatar answered Sep 23 '22 20:09

Robᵩ