Python Google Alerts
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
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
Metadata
Release files for google-alerts 0.2.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| google-alerts-0.2.9.tar.gz | 12.9 kB | Without provenance | Details for google-alerts-0.2.9.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| google_alerts-0.2.9-py3-none-any.whl | Python 3 | none | any | Details for google_alerts-0.2.9-py3-none-any.whl |
Total release size: 28.9 kB
Release files / google-alerts-0.2.9.tar.gz
| Download URL | google-alerts-0.2.9.tar.gz |
|---|---|
| Size | 12.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1eb53383e95b8314a113cc49b56ae44309f28c8b6070a2b87742ddf8746585c7
|
|
BLAKE2b-256 checksum How to use checksums |
fbe5256db06f004402cd9c76f58bfbed82cd57b16bf257ebeb281d9c7dd6a847
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.11.0 pkginfo/1.4.2 requests/2.22.0 setuptools/45.1.0 requests-toolbelt/0.8.0 tqdm/4.23.1 CPython/3.7.6
|
Release files / google_alerts-0.2.9-py3-none-any.whl
| Download URL | google_alerts-0.2.9-py3-none-any.whl |
|---|---|
| Size | 16.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a3771f4aa6aabe300e54a02b57860c2b335902e42213c2f45607462ac77393de
|
|
BLAKE2b-256 checksum How to use checksums |
2b6018b38c8ab26a4b2e12a645fa28554c53bfbd888c6d2abdccf8ba181e2d10
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.11.0 pkginfo/1.4.2 requests/2.22.0 setuptools/45.1.0 requests-toolbelt/0.8.0 tqdm/4.23.1 CPython/3.7.6
|
Security for google-alerts 0.2.9
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.