Skip to content

schollz/websitechanges

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

websitechanges

Alerts you via email about a website change, with an image of the change.

After writing a website change script in Python, I realized I could make it much better using Go+Node. This code was very helpful for me to get registered for a high-demand pottery class.

In this version I'm using puppeteer to do the capturing. The puppeteer code first filters out any ads (to prevent new things appearing in screen) and then captures an image of a CSS-selected content. The change-detection happens in Go and sends an email with an image of the change when any is detected.

Example

Here is an example of a change detected from the New York times headlines.

The previous state is shown in red and the new state is shown in green.

The config.json used was (note the folder key is optional and is used to customize the folder name of images for easier recognition.):

{
    "watchers": [
    {
        "url": "https://www.nytimes.com",
        "css": "h2 > span",
        "folder": "nytimes"
    }]
}

Usage

First make sure you have node and go installed on your system.

Then download and build:

> git clone https://github.com/schollz/websitechanges
> cd websitechanges
> go build -v

Now copy the config file and fill it in (you don't have to include email, just erase that section if you don't need it):

> cp config-example.json config.json
> vim config.json

Now run. The first time you run it will download a HOSTS file that is used for filtering adds and it will install puppeteer if not installed.

> ./websitechanges

By default this will run every 5 minutes. You can adjust the delay by passing the -delay 10 where 10 is the number of minutes to wait before the next run.

> ./websitechanges -delay 10

It automatically generates diff images everytime it encounters a change.

Contributing

Pull requests are welcome. Feel free to...

  • Revise documentation
  • Add new features
  • Fix bugs
  • Suggest improvements

License

MIT