Skip to main content
https://readthedocs.org/projects/google-alerts/badge/?version=latest https://badge.fury.io/py/google-alerts.svg https://img.shields.io/badge/License-MIT-yellow.svg

The google-alerts Python module provides an abstract interface for the Google Alerts service. Google does not provide an official API for this service, so interactions are done through web scripting.

WARNING: Your account password will be obfuscated and saved on the file system. Additionally, post-authentication, a session cookie will also be saved. These can be stolen and re-used to compromise your account. As a best practice, register a new email to manage alerts.

For detailed explanations of the library, please see the wiki.

Quick Start

Install the library:

pip install google-alerts or python setup.py install

Install all dependencies from requirements: pip install -r requirements.txt

Save your configuration:

google-alerts setup --email <your.mail@foo.com> --password 'password'

Seed your session (driver download, http://chromedriver.chromium.org/downloads, do NOT use the pip package as the version is old):

google-alerts seed --driver /tmp/chromedriver --timeout 60

Create a monitor:

google-alerts create --term "hello world" --delivery 'rss' --frequency 'realtime'

List monitors:

google-alerts list

Delete a monitor:

google-alerts delete --id '89e517961a3148c7:c395b7d271b4eccc:com:en:US'

Sample Code

This sample code shows some of the range of functionality within the module:

from google_alerts import GoogleAlerts

# Create an instance
ga = GoogleAlerts('your.email@gmail.com', '**password**')

# Authenticate your user
ga.authenticate()

# List configured monitors
ga.list()

# Add a new monitor
ga.create("Hello World", {'delivery': 'RSS'})

# Modify an existing monitor
ga.modify("89e517961a3148c7:c395b7d271b4eccc:com:en:US", {'delivery': 'RSS', 'monitor_match': 'ALL'})

# Delete a monitor
ga.delete("89e517961a3148c7:c395b7d271b4eccc:com:en:US")

Example Output

Below is an example monitor:

[{
    "term": "hello world",
    "user_id": "09738342945634096720",
    "language": "en",
    "monitor_id": "89e517961a3148c7:c395b7d271b4eccc:com:en:US",
    "region": "US",
    "rss_link": "https://google.com/alerts/feeds/09738342945634096720/9663349274289663466",
    "delivery": "RSS",
    "match_type": "BEST"
}]

Features

  • Add new monitors (RSS or Mail)

  • Modify existing monitors

  • Delete monitors by ID or term

  • List all monitors with details

Changelog

05-09-20

  • Bugfix: Adjusted the seeding process to use Stackoverflow in order to handle initial Google authentication to bypass bot checks

11-20-19

  • Change: Captured all results by default instead of best

07-15-19

  • Bugfix: Handle issues in exception definition

  • Bugfix: Provide alert_frequency with a default option if not supplied

07-14-19

  • Change: Wrap state parsing functions and have them raise exception on failures

  • Bugfix: Account for state changed pushed by Google, breaking all processing

05-23-19

  • Feature: Add a new command line argument to allow a user to specify a seed timeout time

11-11-18

  • Feature: Add a new command line argument to seed a session through the browser

  • Change: Added python version detection to the manage script as well

10-13-18

  • Feature: Detect when user changes between Python versions during setup

  • Bugfix: Setup process appears to finally be bug-free, screw python2 support

07-10-18

  • Feature: Added the ability to set the frequency when creating alerts

  • Bugfix: Fixed frequency settings when using the mail delivery method

05-30-18

  • Change: Explicitly detect when a CAPTCHA is being thrown

05-28-18

  • Feature: Take advantage of the config file concept inside of the class

  • Feature: Authenticate users with a session file if it’s available

  • Change: Tell Chrome to avoid using Javascript so we get the old form

05-25-18

  • Change: Added headers to all calls to look like less of a bot

  • Bugfix: Wrapped a problem area when inspecting the forms in a page

  • Bugfix: Handled setup error for Python3

04-29-18

  • Feature: Allow users to setup exact match queries

  • Change: Added support for Python3

  • Bugfix: Removed extra calls causing an error in the decrypt process

04-26-18

  • Feature: Added a command line utility to the code for easy testing

  • Bugfix: Removed clobbering error inside of delete routine

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

google-alerts-v2-0.2.10.tar.gz (13.0 kB view details)

Uploaded Source

File details

Details for the file google-alerts-v2-0.2.10.tar.gz.

File metadata

  • Download URL: google-alerts-v2-0.2.10.tar.gz
  • Upload date:
  • Size: 13.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/33.0 requests/2.25.1 requests-toolbelt/0.9.1 urllib3/1.26.5 tqdm/4.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.8.9

File hashes

Hashes for google-alerts-v2-0.2.10.tar.gz
Algorithm Hash digest
SHA256 b9c73210b2da900642628e56a2ed3da4d7734dfcd5e0d160b83d2291e681fc52
MD5 465f27eab5cfaa3e83b1474932679355
BLAKE2b-256 cf10467cb759f0ab087d4043429567a6d81bc38d02ed1df8592bbc351e0c9468

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.10 This release

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page