Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ But this turned out to be pretty generic, feel free to use it for your own work.
* Free unrestricted API, requires no key or credit card
* Unicode support
* Works for all Python versions (2 & 3)
* SafeSearch support


### Installation
Expand All @@ -36,12 +37,14 @@ pip install gsearch
```sh
> from gsearch.googlesearch import search

> results = search('Full Stack Developer') # returns 10 or less results
> results = search('Full Stack Developer') # returns 10 or less results with Safe Search OFF
[ ('Name', 'Link'),
('Name', 'Link'),
... ]

> results = search('Avi Aryan', num_results=20) # returns 20 or less results
> results = search('Avi Aryan', num_results=20) # returns 20 or less results with Safe Search OFF

> results = search('Rimac', safe_search=True) # returns 10 or less results with Safe Search ON
```

You can also use it as a CLI tool.
Expand Down
8 changes: 4 additions & 4 deletions gsearch/googlesearch.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,15 +33,15 @@
isPython2 = sys.version.startswith('2')


def download(query, num_results):
def download(query, num_results, safe_search=False):
"""
downloads HTML after google search
"""
# https://stackoverflow.com/questions/11818362/how-to-deal-with-unicode-string-in-url-in-python3
name = quote(query)

name = name.replace(' ','+')
url = 'http://www.google.com/search?q=' + name
url = 'http://www.google.com/search?q=' + name + ("&safe=active" if safe_search else "&safe=images")
if num_results != 10:
url += '&num=' + str(num_results) # adding this param might hint Google towards a bot
req = request.Request(url, headers={
Expand Down Expand Up @@ -98,12 +98,12 @@ def convert_unicode(text):
return s


def search(query, num_results=10):
def search(query, num_results=10, safe_search=False):
"""
searches google for :query and returns a list of tuples
of the format (name, url)
"""
data = download(query, num_results)
data = download(query, num_results, safe_search)
results = re.findall(r'\<h3.*?\>.*?\<\/h3\>', data, re.IGNORECASE)
if results is None or len(results) == 0:
print('No results where found. Did the rate limit exceed?')
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ def read(fname):
install_requires = [],

name = "gsearch",
version = "1.6.0",
version = "1.6.1",
author = "Avi Aryan",
author_email = "avi.aryan123@gmail.com",
description = "Google Search unofficial API for Python with no external dependencies",
Expand Down