{"id":13826653,"url":"https://github.com/schollz/pywebsitechanges","last_synced_at":"2025-07-09T00:34:21.531Z","repository":{"id":40970073,"uuid":"241401616","full_name":"schollz/pywebsitechanges","owner":"schollz","description":"Change detection with a simple Python script to email you whenever a website changes.","archived":false,"fork":false,"pushed_at":"2023-08-03T16:39:47.000Z","size":11,"stargazers_count":58,"open_issues_count":3,"forks_count":10,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-08-09T00:41:58.740Z","etag":null,"topics":["change-detection","python","website","website-change-monitor"],"latest_commit_sha":null,"homepage":"https://schollz.com/blog/pottery/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/schollz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-02-18T15:49:42.000Z","updated_at":"2024-05-08T01:08:25.000Z","dependencies_parsed_at":"2022-09-17T03:24:06.150Z","dependency_job_id":null,"html_url":"https://github.com/schollz/pywebsitechanges","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schollz%2Fpywebsitechanges","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schollz%2Fpywebsitechanges/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schollz%2Fpywebsitechanges/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schollz%2Fpywebsitechanges/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/schollz","download_url":"https://codeload.github.com/schollz/pywebsitechanges/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225476383,"owners_count":17480215,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["change-detection","python","website","website-change-monitor"],"created_at":"2024-08-04T09:01:41.918Z","updated_at":"2024-11-20T05:30:57.042Z","avatar_url":"https://github.com/schollz.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# websitechanges\n\nA simple python script to email you whenever a website changes.\n\n## Install\n\nFirst install Node and Python on your system if you don't already. Then you will need the required packages which can be installed with `pip`:\n\n\tpip install click numpy loguru scikit-image opencv-python\n\nThen get the script:\n\n\twget https://raw.githubusercontent.com/schollz/websitechanges/master/websitechanges.py\n\nAnd now run it whever - in a folder, in a cron, etc.\n\n## Usage\n\n```bash\n$ python3 websitechanges.py --help\nUsage: websitechanges.py [OPTIONS]\n\nOptions:\n  --url TEXT         url to watch  [required]\n  --folder TEXT      directory to store data\n  --css TEXT         CSS selector of element to watch, default full page\n  --to TEXT          email address of person to alert\n  --smtpemail TEXT   SMTP email address\n  --smtppass TEXT    SMTP email password\n  --threshold FLOAT  threshold for sending email\n```\n\nThe `url` is the specified URL.\n\nThe `folder` specifies where to store all the data and puppeteer information.\n\nThe `css` will take a CSS query for a specific element you want to view. Otherwise it will capture the whole page.\n\nTo be alerted you will need to set `to` (the email to alert), `smtpemail` (the email sign-in for the SMTP), and `smtppass` (the password for the SMTP). You can easily setup a Gmail account to be used as an SMTP provider. \n\n### Example\n\nThe simplest way to run is:\n\n\tpython3 websitechanges.py --url SOMEURL\n\nThis will automatically download puppeteer, which is used to gather the screenshot. It will also download a HOSTS file to block ads so that the website can be shown reproducibly. \n\nEvery alert will send you an image of the latest image, in low quality JPEG format in order to save on bandwidth.\n\nEach time the script will only run once, so you will need to set up a cron job or a for loop to keep it continually running.\n\n## License\n\nMIT","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fschollz%2Fpywebsitechanges","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fschollz%2Fpywebsitechanges","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fschollz%2Fpywebsitechanges/lists"}