.. role:: underline :class: underline .. role:: additions :class: additions .. role:: deletions :class: deletions
webchanges checks web content including images, and notifies you via email (or one of many other supported services <https://webchanges.readthedocs.io/en/stable/introduction.html#reporters-list>
__) if a change is detected.
webchanges can also check the output of local commands. The notification includes a detail of what has changed
("diff"), with an optional summary generated by AI (BETA).
webchanges anonymously alerts you of web changes.
webchanges requires |support|.
You should use the latest version of Python <https://www.python.org/downloads/>
__ if possible, but older
Python versions are supported for 3 years after being obsoleted by a new major release (3.x). For each major release,
only the latest bug and security fix version (3.x.y) is supported.
For Generative AI summaries (BETA), you need a free API Key from Google Cloud AI Studio <https://aistudio.google.com/app/apikey>
(see here <https://webchanges.readthedocs.io/en/stable/differs.html#ai-google>
).
Install webchanges |pypi_version| |format| |status| |security| with:
.. code-block:: bash
pip install webchanges
webchanges can be run in a Docker <https://www.docker.com/>
container; please see here <https://github.com/yubiuser/webchanges-docker>
for one such implementation.
The documentation is hosted on Read the Docs <https://webchanges.readthedocs.io/>
__.
config.yaml
(configuration) and jobs.yaml
(jobs) files andopen an editor to add your jobs <https://webchanges.readthedocs.io/en/stable/jobs.html>
__:
.. code-block:: bash
webchanges --edit
https://webchanges.readthedocs.io/en/stable/configuration.html__, e.g. to receive change notifications ("
reports https://webchanges.readthedocs.io/en/stable/reporters.html__") by
email https://webchanges.readthedocs.io/en/stable/reporters.html#smtp`__ and/or one of many other methods:
.. code-block:: bash
webchanges --edit-config
To check the sources in your jobs and report on (e.g. display or via email) any changes found from the previous execution, just run:
.. code-block:: bash
webchanges
webchanges does not include a scheduler. We recommend using a system scheduler to automatically run it periodically:
here <https://www.computerhope.com/unix/ucrontab.htm>
); crontab.guru <https://crontab.guru>
will build a
schedule expression for you;launchd <https://developer.apple .com/library/archive/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/ScheduledJobs.html>
__;Windows Task Scheduler <https://en.wikipedia.org/wiki/Windows_Task_Scheduler>
__.|coveralls| |issues|
The code and issues tracker are hosted on GitHub <https://github.com/mborsetti/webchanges>
__.
We welcome any contribution no matter how small, both as pull requests or issue reports <https://github.com/mborsetti/webchanges/issues>
__.
More information for code and documentation contributors is here <https://webchanges.readthedocs.io/en/stable/contributing.html>
, and our wishlist is here <https://github.com/mborsetti/webchanges/blob/main/WISHLIST.md>
.
|license|
Released under the MIT License <https://opensource.org/licenses/MIT>
but redistributing modified source code from
urlwatch 2.21 <https://github.com/thp/urlwatch/tree/346b25914b0418342ffe2fb0529bed702fddc01f>
dated 30 July 2020
licensed under a BSD 3-Clause License <https://raw.githubusercontent.com/thp/urlwatch/346b25914b0418342ffe2fb0529bed702fddc01f/COPYING>
. See the complete
license here <https://github.com/mborsetti/webchanges/blob/main/LICENSE>
.
This project is based on code from urlwatch 2.21 <https://github.com/thp/urlwatch/tree/346b25914b0418342ffe2fb0529bed702fddc01f>
dated 30 July 2020. You can
easily upgrade to webchanges from the current version of urlwatch using the same job and configuration files
(see here <https://webchanges.readthedocs.io/en/stable/migration.html>
) and benefit from many improvements,
including:
Summary of changes in plain text using Generative AI, useful for long documents (e.g. legal);
Depicting changes to an image;
Element-by-element changes of JSON or XML data;
Much better documentation <https://webchanges.readthedocs.io/>
__, easing implementation;
Much clearer to HTML reports, which include:
clickable <https://pypi.org/project/webchanges/>
__!underlining
, list bullets
(•) and indentation;added
and :deletions:deleted
are clearly highlighted by color and strikethrough,
and long lines wrap around;New filters such as additions_only <https://webchanges.readthedocs.io/en/stable/diff_filters.html#additions-only>
__,
which makes it easier to track content that was added without the distractions of the content that was deleted;
New command line arguments, such as --errors
(to catch jobs that no longer work);
More reliability and stability, including a ~30 percentage point increase in testing coverage;
Many other additions, refinements and fixes (see detailed information <https://webchanges.readthedocs.io/en/stable/migration.html#upgrade-details>
__).
Example enhancements to HTML reporting:
.. image:: https://raw.githubusercontent.com/mborsetti/webchanges/main/docs/html_diff_filters_example_1.png :width: 504
|
.. image:: https://raw.githubusercontent.com/mborsetti/webchanges/main/docs/html_diff_filters_example_3.png :width: 504
.. |support| image:: https://img.shields.io/pypi/pyversions/webchanges.svg :target: https://www.python.org/downloads/ :alt: Supported Python versions .. |pypi_version| image:: https://img.shields.io/pypi/v/webchanges.svg?label= :target: https://pypi.org/project/webchanges/ :alt: PyPI version .. |format| image:: https://img.shields.io/pypi/format/webchanges.svg :target: https://pypi.org/project/webchanges/ :alt: Kit format .. |downloads| image:: https://static.pepy.tech/badge/webchanges :target: https://www.pepy.tech/project/webchanges :alt: PyPI downloads .. |license| image:: https://img.shields.io/pypi/l/webchanges.svg :target: https://pypi.org/project/webchanges/ :alt: License at https://pypi.org/project/webchanges/ .. |issues| image:: https://img.shields.io/github/issues-raw/mborsetti/webchanges :target: https://github.com/mborsetti/webchanges/issues :alt: Issues at https://github.com/mborsetti/webchanges/issues .. |readthedocs| image:: https://img.shields.io/readthedocs/webchanges/stable.svg?label= :target: https://webchanges.readthedocs.io/ :alt: Documentation status .. |CI| image:: https://github.com/mborsetti/webchanges/actions/workflows/ci-cd.yaml/badge.svg?event=push :target: https://github.com/mborsetti/webchanges/actions :alt: CI testing status .. |coveralls| image:: https://coveralls.io/repos/github/mborsetti/webchanges/badge.svg?branch=main :target: https://coveralls.io/github/mborsetti/webchanges?branch=main :alt: Code coverage by Coveralls .. |status| image:: https://img.shields.io/pypi/status/webchanges.svg :target: https://pypi.org/project/webchanges/ :alt: Package stability .. |security| image:: https://img.shields.io/badge/security-bandit-yellow.svg :target: https://github.com/PyCQA/bandit :alt: Security Status