Asyncio API wrapper for the Google Custom Search JSON API.
pip3 install -U async_cse
pip3 install -U git+https://github.com/crrapi/async-cse
import async_cse
client = async_cse.Search("Your API Key") # create the Search client (uses Google by default!)
results = await client.search("Python", safesearch=False) # returns a list of async_cse.Result objects
first_result = results[0] # Grab the first result
print(first_result.title, first_result.description, first_result.url, first_result.image_url) # Title, snippet, URL, and Image URL (if specified)
await client.close() # Run this when cleaning up.
To get image results with the default engine, use image_search=True
when searching, like so:
await client.search("Python", safesearch=False, image_search=True) # returns a list of async_cse.Result objects
To use Search objects with a custom search engine, provide the ID of the search engine.
async_cse.Search("Your API Key", engine_id="015786823554162166929:mywctwj8es4")
SafeSearch can also be turned off by setting safesearch=False
when using the search()
method.
You can get an API key by going here and scrolling down to the API key section.
Key shuffling may be used as a fail-safe for keys that run out of requests, effectively giving you +100 requests for each key passed.
Just pass a list of keys when instantiating your Search
client.
Here's a demonstration of this:
import async_cse
client = async_cse.Search(["API Key 1", "API Key 2", "API Key 3"]) # Multiple keys as a list
await client.search("Python") # Uh oh, one of these keys doesn't work! Trying again with another...
When async-cse
detects a non-working key, it will remove it from its internal list and retry the search.