                _               _       _       ____
     _   _ _ __| |_      ____ _| |_ ___| |__   |___ \
    | | | | '__| \ \ /\ / / _` | __/ __| '_ \    __) |
    | |_| | |  | |\ V  V / (_| | || (__| | | |  / __/
     \__,_|_|  |_| \_/\_/ \__,_|\__\___|_| |_| |_____|

                         ... monitors webpages for you

urlwatch is intended to help you watch changes in webpages and get notified (via e-mail, in your terminal or through various third party services) of any changes. The change notification will include the URL that has changed and a unified diff of what has changed.

# The Handbook

- Introduction
  - Quick Start
  - How it works
  - Jobs and Filters
  - Reporters
- Jobs
  - URL
  - Browser
  - Shell
  - Optional keys for all job types
  - Setting keys for all jobs at once
- Filters
  - Built-in filters
  - Picking out elements from a webpage
  - Chaining multiple filters
  - Extracting only the `<body>` tag of a page
  - Filtering based on an XPath expression
  - Filtering based on CSS selectors
  - Using XPath and CSS filters with XML and exclusions
  - Limiting the returned items from a CSS Selector or XPath
  - Fixing list reorderings with CSS Selector or XPath filters
  - Filtering PDF documents
  - Dealing with CSV input
  - Sorting of webpage content
  - Reversing of lines or separated items
  - Watching Github releases and Gitlab tags
  - Find, remove or replace text using regular expressions
  - Using a shell script as a filter
  - Converting text in images to plaintext
  - Filtering JSON response data using `jq` selectors
- Configuration
  - Display
  - Reporters
  - Job Defaults
- Reporters
  - Built-in reporters
  - Pushover
  - Pushbullet
  - Telegram
  - Slack
  - Mattermost
  - Discord
  - Gotify
  - IFTTT
  - Matrix
  - E-Mail via sendmail
  - E-Mail via GMail SMTP
  - E-Mail via Amazon Simple E-Mail Service (SES)
  - SMTP login without keyring
  - XMPP
  - Prowl
  - Shell
- Advanced Topics
  - Adding URLs from the command line
  - Using word-based differences
  - Ignoring whitespace changes
  - Only show added or removed lines
  - Disable empty notifications
  - Pass diff output to a custom script
  - Comparing web pages visually
  - Ignoring connection errors
  - Overriding the content encoding
  - Changing the default timeout
  - Supplying cookie data
  - Comparing with several latest snapshots
  - Receiving a report every time urlwatch runs
  - Using Redis as a cache backend
  - Watching changes on .onion (Tor) pages
  - Watching Facebook Page Events
  - Setting the content width for `html2text` (`lynx` method)
  - Configuring how long browser jobs wait for pages to load
  - Treating `NEW` jobs as `CHANGED`
  - Monitoring the same URL in multiple jobs
  - Updating a URL and keeping past history
  - Running a subset of jobs
  - Sending HTML form data using POST
  - Sending arbitrary data using HTTP PUT
  - UTF-8 support on Windows
- Dependencies
  - Mandatory Packages
  - Optional Packages
- Deprecated Features
  - `networkidle0` and `networkidle2` for `wait_until` in browser jobs (since 2.28)
  - Filters without subfilters (since 2.22)
  - string-based filter definitions (since 2.19)
  - keyring setting in SMTP reporter configuration (since 2.18)
- Migration from 1.x

# Indices and tables

- Index

- Search Page