How-To https://changedetection.io/ en-gb Email notification when a web page changes - How To https://changedetection.io/tutorial/email-notification-when-web-page-changes-how <span class="field field--name-title field--type-string field--label-hidden">Email notification when a web page changes - How To</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><a title="View user profile." href="/tech-writer/stephen" class="username">Stephen</a></span> <span class="field field--name-created field--type-created field--label-hidden"><time datetime="2024-10-17T10:20:34+02:00" title="Thursday, October 17, 2024 - 10:20" class="datetime">Thu, 10/17/2024 - 10:20</time> </span> <div class="field field--name-field-topic field--type-entity-reference field--label-above"> <div class="field__label">Topic</div> <div class='field__items'> <div class="field__item"><a href="/topic/how" hreflang="en-gb">How-To</a></div> </div> </div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><h3>How to Set Up Changedetection.io to Monitor a Web Page and Send Email Notifications</h3><p>Changedetection.io is an excellent tool for monitoring changes to websites. Whether you're tracking stock prices, checking for product availability, or keeping an eye on any important web content, Changedetection.io can notify you when something changes. In this tutorial, we’ll walk you through how to set up a web page monitor and configure email notifications for any updates—all using the subscription version of Changedetection.io.</p><p>&nbsp;</p><h4>Step 1: Log In (or Sign Up)</h4><p>To begin, visit the <a href="https://changedetection.io/">changedetection front page</a> and either sign up for a new account or log in if you already have one.</p><ul><li>After signing in, you will be directed to your dashboard, where you can see all your monitored web pages (if you’ve already added any) or begin setting up new ones.</li><li><p>If you just joined us, simply follow the instructions in the welcome email, the email will include the login information, passwords etc</p><p>&nbsp;</p></li></ul><h4>Step 2: Configure the email address for notifications</h4><p>Now that you are happily logged in, click <strong>SETTINGS </strong>in the top bar, and then the <strong>NOTIFICATIONS </strong>tab, by default we dont assume you will use email alerts because we &nbsp;support 95+ other notification systems such as Discord, Slack, MS-Teams, etc, so now you can simply add your email address here.</p><p>Click the <strong>"ADD EMAIL"</strong> button (located below the "<em>Notification URL list</em>" box), and fill in the email address you wish to notification when the web page changes, click <strong>OK</strong></p><p>Then click <strong>SAVE </strong>(at the bottom of the page)</p><p>&nbsp;</p><p>&nbsp;</p><img src="/sites/changedetection.io/files/inline-images/image_89.png" data-entity-uuid="41e22edd-c383-48f4-a28e-05b324124b3e" data-entity-type="file" alt="How to add an email address for web page change alerts" width="994" height="436" loading="lazy"><p><strong>Tip: </strong>Once you have added your email address, you can also click <em><strong>"Send test notification" </strong></em>to send a test email, so that you can be sure that you entered your information correctly</p><p>&nbsp;</p><p>&nbsp;</p><h4>Step 3: Add a New Web Page to Monitor</h4><ol><li>Back the home page (click the "changedetection.io" text on the top left to return anytime) Add the website page URL in the box under the <em>"Add a new change detection watch" </em>text, in this example we're adding <code>https://mycompany.com/news</code></li><li><p>Then click<strong> "Watch" </strong>This will add the webpage to your list of watched pages, the system will begin rechecking the page at the default intervals (but you can change this anytime)</p><p>&nbsp;</p></li></ol><img src="/sites/changedetection.io/files/inline-images/image_90.png" data-entity-uuid="d3f980dc-9045-42b9-bd1e-5b92465037c1" data-entity-type="file" alt="Adding a web page URL for detecting changes" width="1050" height="470" loading="lazy"><p>&nbsp;</p><p>We encourage you to explore the various settings and possibilities that can be achieved with changedetection.io, but in this tutorial we want to give you just the very easiest overview of how to start monitoring a webpage and receive alerts via email when ever a change to the website page occurs.</p><p>You can also click "EDIT" and explore other options such as the recheck interval time, the <em>Visual Selector </em>for choosing which elements/parts of the web page to monitor and the <em>Browser Steps</em> option for interacting with the page (such as logging in, performing searches etc), you can also choose to include a screenshot with the email.</p><p>&nbsp;</p><p>All the best and have fun monitoring web pages for changes!</p><p>&nbsp;</p></div> Thu, 17 Oct 2024 08:20:34 +0000 Stephen 36 at https://changedetection.io Monitoring HTML "SELECT" drop down for changes to options https://changedetection.io/tutorial/monitoring-html-select-drop-down-changes-options <span class="field field--name-title field--type-string field--label-hidden">Monitoring HTML &quot;SELECT&quot; drop down for changes to options</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><a title="View user profile." href="/tech-writer/stephen" class="username">Stephen</a></span> <span class="field field--name-created field--type-created field--label-hidden"><time datetime="2024-10-11T11:14:22+02:00" title="Friday, October 11, 2024 - 11:14" class="datetime">Fri, 10/11/2024 - 11:14</time> </span> <div class="field field--name-field-topic field--type-entity-reference field--label-above"> <div class="field__label">Topic</div> <div class='field__items'> <div class="field__item"><a href="/topic/how" hreflang="en-gb">How-To</a></div> </div> </div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>changedetection.io will automatically show any changes to &lt;select&gt;&lt;option&gt; values, infact it renders them out ready for change detection on the fly</p><p><em><strong>For example if we had..</strong></em></p><p><code>&lt;select name="cars" id="cars"&gt;&nbsp;</code><br><code>&nbsp;&lt;option value="volvo"&gt;Volvo&lt;/option&gt;&nbsp;</code><br><code>&nbsp;&lt;option value="saab"&gt;Saab&lt;/option&gt;&nbsp;</code><br><code>&nbsp;&lt;option value="mercedes"&gt;Mercedes&lt;/option&gt;&nbsp;</code><br><code>&nbsp;&lt;option value="audi"&gt;Audi&lt;/option&gt;&nbsp;</code><br><code>&lt;/select&gt;</code></p><p>So this would appear by default in the "<strong>Preview</strong>"( or notification text ) &nbsp;as <code><strong>"Volve Saab Mercedes Audio"</strong></code>, however if you really wanted to see what changed you can also switch to<em> <strong>HTML Source mode</strong></em><br>&nbsp;</p><p>&nbsp;</p><p>changedetection.io can also monitor the HTML source of a web-page by simply prepending the "<code><strong>source:</strong></code>" keyword to the start of a page, for example below ;</p><p>(more on <a href="https://changedetection.io/tutorial/source-code-monitor-how-get-alerts-changes-html-source-code">monitoring changes to HTML sourcecode here</a>)</p><img src="/sites/changedetection.io/files/inline-images/image_86.png" data-entity-uuid="1c7e7845-da72-4fc3-b608-0a4e76dc6c8d" data-entity-type="file" alt="Adding a URL for web page change detection of select element" width="875" height="189" loading="lazy"><p>&nbsp;</p><p>Then we can skip over to <strong>Filters &amp; Triggers&nbsp;</strong> and add <code><strong>select</strong></code>, this way we can just focus on the <code><strong>&lt;select&gt;</strong></code> element for monitoring changes</p><p>&nbsp;</p><img src="/sites/changedetection.io/files/inline-images/image_87.png" data-entity-uuid="8c784806-202a-4b12-a5ab-1d4381610c27" data-entity-type="file" width="886" height="280" loading="lazy"><p>&nbsp;</p><p>After a quick recheck, we can now see that "skoda" was added to the dropdown select element list items ( and if we configured notifications, we could get a notification via Discord, slack, email etc)<br><br><img src="/sites/changedetection.io/files/inline-images/image_88.png" data-entity-uuid="049d5add-468c-481c-ab0d-8971e2dd5b9e" data-entity-type="file" alt="HTML Select with changes ready for alerts" width="495" height="387" loading="lazy"></p><p>Happy change detecting :)</p><p>&nbsp;</p></div> Fri, 11 Oct 2024 09:14:22 +0000 Stephen 35 at https://changedetection.io Vevor Tools - easily monitor restock and get alerts on discounts! https://changedetection.io/tutorial/vevor-tools-easily-monitor-restock-and-get-alerts-discounts <span class="field field--name-title field--type-string field--label-hidden">Vevor Tools - easily monitor restock and get alerts on discounts!</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><a title="View user profile." href="/tech-writer/stephen" class="username">Stephen</a></span> <span class="field field--name-created field--type-created field--label-hidden"><time datetime="2024-09-05T14:45:24+02:00" title="Thursday, September 5, 2024 - 14:45" class="datetime">Thu, 09/05/2024 - 14:45</time> </span> <div class="field field--name-field-topic field--type-entity-reference field--label-above"> <div class="field__label">Topic</div> <div class='field__items'> <div class="field__item"><a href="/topic/how" hreflang="en-gb">How-To</a></div> </div> </div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>If you're a fan of <a href="https://vevor.com/">Vevor tools</a>, you can buy them directly from their website. But even better than that is catching those irresistible clearance sales, restocks, and deep discounts on their products.</p><p>With changedetection.io, you can effortlessly set up alerts for price drops and restocks, ensuring you never miss a deal or the chance to grab a tool as soon as it's back in stock.</p><h2>&nbsp;</h2><h2>How to setup alerts when a Vevor Tools product changes price or has a discount.</h2><p>&nbsp;</p><p><strong>Step 1: </strong>Copy+Paste the link (URL) to the <a href="https://vevor.com/">Vevor Tools</a> page you want to monitor and select "Re-stock &amp; Price detection for single product pages".</p><p>Import is to select the<strong> "Re-stock &amp; Price detection for single product pages" </strong>option, this will turn on the various options for following the product price (Such as being able to set limits/thresholds on the price of the product before sending a notification)</p><img src="/sites/changedetection.io/files/inline-images/image_81.png" data-entity-uuid="3c5ac8e1-4785-4a67-b5cb-83e56c2ac96d" data-entity-type="file" alt="Vevor Tools - Adding a web-page" width="1122" height="224" loading="lazy"><p>&nbsp;</p><p><strong>Step 2</strong>: Congratulations! By default, changedetection.io will automatically track any price or restock changes on the Vevor tools product URLs you've added. You can see this in the <em>"Restock &amp; Price"</em> column.</p><p>&nbsp;</p><img src="/sites/changedetection.io/files/inline-images/image_82.png" data-entity-uuid="dd8d24f0-7111-4e5a-93f9-e4a284cc736c" data-entity-type="file" alt="Watching Vevor products for changes in price or restock" width="1278" height="500" loading="lazy"><p>&nbsp;</p><h3>How to setup notifications for discounts of the Vevor tools products and score a bargain?</h3><p>Simply click<strong> [EDIT]</strong> at the list of website watches for the page/product you're interested in, then click <strong>"Restock &amp; Price Detection", </strong>over on this tab is where you can setup alerts based on ;</p><p>&nbsp;</p><ul><li>Price below $/GBP/EUR (If it goes OVER a certain amount, send alert)</li><li>Price lower $/GBP/EUR (If it goes UNDER a certain amount, send alert)</li><li>Price change by % - Probably the best option, for example you could get an alert if the Vevor product you're interested in goes on sale by more than 5% since the first check.</li></ul><p>&nbsp;</p><img src="/sites/changedetection.io/files/inline-images/image_83.png" data-entity-uuid="a1cec187-9c58-42e9-8868-9163bf411b87" data-entity-type="file" alt="Price threshold alerts for vevor products on sale" width="1141" height="697" loading="lazy"><p>Perfect!&nbsp;</p><h3>&nbsp;</h3><h3>How to add Email or Discord notifications to Vevor Tools product price discounts and restocks?<br>&nbsp;</h3><p>Probably our most asked question, fortunately it's exactly the same as setting up notifications for any other &nbsp;web-page change alert. Fortunately it's super simple, just click the [<strong>Notifications]</strong> tab (available on each web-page watch, or under "Settings" to only set it up once for all watches)</p><p>&nbsp;</p><p>Then click <strong>"Add email" , </strong>it will ask you what email address you prefer and fill in the details automatically for you.</p><p>&nbsp;</p><img src="/sites/changedetection.io/files/inline-images/image_84.png" data-entity-uuid="b64056e2-633f-4180-86f0-8d8da0784355" data-entity-type="file" alt="Email configuration vevor products restock and price change alert" width="774" height="681" loading="lazy"><p>&nbsp;</p><h5>What about Discord notifications of Vevor Product price changes?</h5><p>Super easy, following the same configuration page, paste in your Discord "webhook" URL to your bot/channel (more about <a href="https://github.com/caronc/apprise/wiki/Notify_discord">Discord configuration here</a>)<br><br><br><img src="/sites/changedetection.io/files/inline-images/image_85.png" data-entity-uuid="8c4a1ffc-e90e-4cfa-ab02-6efd03c3207c" data-entity-type="file" alt="Discord Vevor tools product price change webhook" width="1129" height="142" loading="lazy"></p><p>&nbsp;</p><p>You can add as many notification types as you like, don't forget we support dozens of various Productivity based notification systems, not just email! including but not limited to AWS SES, Discord, Google Chat, Line Mastodon, Matrix, Microsoft teams,<a href="https://github.com/caronc/apprise?tab=readme-ov-file#productivity-based-notifications"> Slack and more!&nbsp;</a></p><p>&nbsp;</p><p>Happy product hunting :)</p></div> Thu, 05 Sep 2024 12:45:24 +0000 Stephen 34 at https://changedetection.io Synology NAS - How to get alerts on new software updates via Discord! https://changedetection.io/tutorial/synology-nas-how-get-alerts-new-software-updates-discord <span class="field field--name-title field--type-string field--label-hidden">Synology NAS - How to get alerts on new software updates via Discord!</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><a title="View user profile." href="/tech-writer/stephen" class="username">Stephen</a></span> <span class="field field--name-created field--type-created field--label-hidden"><time datetime="2024-01-17T11:56:22+01:00" title="Wednesday, January 17, 2024 - 11:56" class="datetime">Wed, 01/17/2024 - 11:56</time> </span> <div class="field field--name-field-topic field--type-entity-reference field--label-above"> <div class="field__label">Topic</div> <div class='field__items'> <div class="field__item"><a href="/topic/how" hreflang="en-gb">How-To</a></div> </div> </div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>In this quick tutorial I'll show you how easy it is in to monitor a website for new software version releases and connect Discord for push notifications.</p><p>We will use Synology NAS in our little example, Synology have been continuously releasing great features and super stable software in recent years.</p><p>Ofcourse, what is cool is that you should <a href="https://mariushosting.com/synology-install-changedetection-with-portainer/">install changedetection.io on your Synology NAS</a> (check out the link to Marius's <a href="https://mariushosting.com/synology-install-changedetection-with-portainer/">fantastic article</a> on setting up changedetection.io on your Synology NAS)</p><p>&nbsp;</p><p><em>So let's go!</em></p><p>&nbsp;</p><p>Add your favourite Synology product page's software update page URL to monitor, in this example we have the DS723, but the same recipe applies for pretty much all of their range, (we tested with DS723+, DS920+ etc)</p><p>&nbsp;</p><img src="/sites/changedetection.io/files/inline-images/image_69.png" data-entity-uuid="88a2d765-b145-475a-a05e-ded02d1a5f73" data-entity-type="file" alt="Adding Synology NAS product URLs to monitor for changes" width="1052" height="218" loading="lazy"><p>&nbsp;</p><p>Now your overview list should look something like below (We clicked [edit] then &nbsp;ticked the "Use &lt;title&gt; as title of the watch" option so it's a little easier to read)</p><p>&nbsp;</p><img src="/sites/changedetection.io/files/inline-images/image_70.png" data-entity-uuid="a2887254-0177-4c42-b80e-081e04850d81" data-entity-type="file" alt="Synology NAS production URL list" width="1030" height="437" loading="lazy"><p>&nbsp;</p><p>Now the Synology NAS website has a lot of extra information in the footers and headers, using the <strong>Visual Selector</strong> tool available under <strong>[edit] </strong>we simply select the actual content area</p><p>&nbsp;</p><img src="/sites/changedetection.io/files/inline-images/image_71.png" data-entity-uuid="17822eb6-e2b7-4152-a603-d813cd5d2d8d" data-entity-type="file" alt="Synology NAS Visual Selector tool example" width="1280" height="810" loading="lazy"><p>&nbsp;</p><p>You can see that changedetection.io has correctly identified <strong>//*[@id="release_notes_content"]</strong> as the place where the the content lives (this is the area of the web page that would be used for change detection)<br>&nbsp;</p><p>Now when Synology NAS release a new version/update you should be able to see the differences</p><p><img src="/sites/changedetection.io/files/inline-images/image_72.png" data-entity-uuid="6c7a486c-bcc0-4c0f-8a93-25a608b240e2" data-entity-type="file" width="1280" height="571" loading="lazy"><br>&nbsp;</p><p>&nbsp;</p><p>To have a bot send notifications to your server’s channel you need to paste in the following "Notification URL" in the notification settings</p><p><code>discord://<strong>webhook_id</strong>/<strong>webhook_token</strong></code></p><p>To get a <code><strong>webhood_id</strong></code> and a <code><strong>webhook_token</strong></code>. Click the settings icon beside the chat and click <code>Integrations</code>.</p><img src="/sites/changedetection.io/files/inline-images/image_74.png" data-entity-uuid="6ea3fb47-40a8-41b4-88fd-c378bfa2ce81" data-entity-type="file" width="216" height="25" loading="lazy"><p>Then click <code>View Webhooks</code>, then <code>New Webhooks</code> you can change the name of the bot if you like and copy the <code>Webhook URL</code>. It will usually be called by default "Spidey bot"</p><p><br><img src="/sites/changedetection.io/files/inline-images/image_77.png" data-entity-uuid="62ff95ce-48f7-4308-bfbb-feb8cb629438" data-entity-type="file" width="1037" height="434" loading="lazy"></p><p>&nbsp;</p><img src="/sites/changedetection.io/files/inline-images/image_78.png" data-entity-uuid="b8ea4217-99d1-4ef2-af85-5683fb623da2" data-entity-type="file" alt="Setup the discord bot" width="748" height="334" loading="lazy"><p>Then "Copy Webhook URL" (This is now the "<strong>Notification URL</strong>" in changedetection.io)</p><p>&nbsp;</p><p>Simply paste that under the <strong>Notification</strong> settings of the watch (or global settings)</p><p>&nbsp;</p><img src="/sites/changedetection.io/files/inline-images/image_73.png" data-entity-uuid="67fa6b4f-6a3e-400f-8502-deb0fc92ec66" data-entity-type="file" alt="Discord settings changedetection.io notification" width="1378" height="380" loading="lazy"><p>We recommend you try the "<strong>Send test notification</strong>" button to confirm everything is working as expected.</p><p>&nbsp;</p><p>And there you have it! Now you'll receive push notifications of the changes/updates in the Synology NAS software releases page via Discord</p><p>&nbsp;</p><img src="/sites/changedetection.io/files/inline-images/image_79.png" data-entity-uuid="01d5d39f-ec77-4169-b82a-c6ff5d713515" data-entity-type="file" alt="Discord notification from changedetection.io bot" width="963" height="473" loading="lazy"><p>&nbsp;</p><p>Have fun!</p></div> Wed, 17 Jan 2024 10:56:22 +0000 Stephen 32 at https://changedetection.io Change detection if a HTML element exists or not https://changedetection.io/tutorial/change-detection-if-html-element-exists-or-not <span class="field field--name-title field--type-string field--label-hidden">Change detection if a HTML element exists or not</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><a title="View user profile." href="/tech-writer/stephen" class="username">Stephen</a></span> <span class="field field--name-created field--type-created field--label-hidden"><time datetime="2024-01-08T11:19:43+01:00" title="Monday, January 8, 2024 - 11:19" class="datetime">Mon, 01/08/2024 - 11:19</time> </span> <div class="field field--name-field-topic field--type-entity-reference field--label-above"> <div class="field__label">Topic</div> <div class='field__items'> <div class="field__item"><a href="/topic/how" hreflang="en-gb">How-To</a></div> </div> </div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Sometimes you are not quite interested in content change notifications for the entire web page, and maybe not even content change notification for a element on the website - <em><strong>actually you want to know if an element exists at all or not.</strong></em></p><p>&nbsp;</p><p>So in this quick tutorial I'll show you how to setup changedetection.io to alert if you a HTML element exists or not</p><p>&nbsp;</p><p>Using "xPath" (Like CSS selectors except different :) ) we can simply write the filter rule</p><p><code>xpath:if (count(//item) &gt;0 ) then "Yes it exists!" else "no sorry not here"</code></p><p>&nbsp;</p><img src="/sites/changedetection.io/files/inline-images/image_66.png" data-entity-uuid="6d528594-42c7-40de-a868-04653cbb8058" data-entity-type="file" alt="Setting alert if an element exists or not" width="888" height="305" loading="lazy"><p>&nbsp;</p><p>So then the change difference would look something like</p><p>&nbsp;</p><img src="/sites/changedetection.io/files/inline-images/image_67.png" data-entity-uuid="d440a6b0-155a-4262-888d-a74bd8fc1480" data-entity-type="file" alt="Example alert text if the item exists" width="900" height="228" loading="lazy"><p>&nbsp;</p><p>What is also cool is that because changedetection.io supports xPath2/3 by default, you can also just output the value of <strong>count(), </strong>which means you could get a notification if the number of items changes</p><p>&nbsp;</p><p><code>xpath:count(//item)</code></p><p>&nbsp;</p><p>Where <em><strong>//item</strong></em> is the is the HTML xPath to follow</p><p>&nbsp;</p><p>So perhaps one real world example could be that you want to know if the number of offers listed drops to less than 5</p><p>(imagine that the page has a list of special offers, where each <strong>div</strong> is &nbsp;'<code>&lt;div class="special-offers"&gt;</code>..`</p><p>&nbsp;</p><p><code>xpath:if (count(//div[contains(@class, 'special-offers')) &lt;5 ) then "Less than 5 special offiers" else "All ok, more than 5 offers"</code></p><p>&nbsp;</p><p>Simple as that :) The service will let you know/alert you (depending on your notification setup) if less than 5 offers are shown or not.</p><p>&nbsp;</p><p>All the best and have fun!</p></div> Mon, 08 Jan 2024 10:19:43 +0000 Stephen 31 at https://changedetection.io How to monitor a website for NEW content https://changedetection.io/tutorial/how-monitor-website-new-content <span class="field field--name-title field--type-string field--label-hidden">How to monitor a website for NEW content</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><a title="View user profile." href="/tech-writer/stephen" class="username">Stephen</a></span> <span class="field field--name-created field--type-created field--label-hidden"><time datetime="2024-01-05T11:52:15+01:00" title="Friday, January 5, 2024 - 11:52" class="datetime">Fri, 01/05/2024 - 11:52</time> </span> <div class="field field--name-field-topic field--type-entity-reference field--label-above"> <div class="field__label">Topic</div> <div class='field__items'> <div class="field__item"><a href="/topic/how" hreflang="en-gb">How-To</a></div> </div> </div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>How to monitor a site or web page for <em>new</em> content ? How can you configure changedetection.io to only show <em><strong>NEW</strong></em> content from a site and send you a notification?&nbsp;</p><p>Unlike other services, changedetection.io is mostly interested in <em><strong>the actual text content of the website</strong></em>, this means that we can provide some super cool filters that allow you to really specify exactly what it is that you're interested in.</p><p>This can easily be achieved once you have added a website to watch, then set the "<strong>Added or Removed text</strong>" option in the Filters section.</p><p>This will allow you to only get alerts and notifications when the website has added new content.</p><p>&nbsp;</p><img src="/sites/changedetection.io/files/inline-images/image_62.png" data-entity-uuid="36cd8676-4c8a-4b3c-bc98-c8b870fbdbe7" data-entity-type="file" alt="How to monitor a website for new content - a graphic showing what could be detected" width="608" class="align-center" height="493" loading="lazy"><p>&nbsp;</p><h2>Where to find the option to monitor a website for NEW content?</h2><p>&nbsp;</p><p>Fortunately, all related options are easily discoverable under <strong>Edit &gt;&nbsp;</strong> <strong>Filters &amp; Triggers</strong> then scroll down to "<strong>Text filtering</strong>" under the website page that you are monitoring.</p><img src="/sites/changedetection.io/files/inline-images/image_65.png" data-entity-uuid="ec53fbe2-d97a-450b-910d-d7e56c5ae3b2" data-entity-type="file" alt="Set up options for monitoring website for new content screenshot" class="align-left" width="1079" height="265" loading="lazy"><p>&nbsp;</p><p>When the website is checked according to your prefered schedule, the system will compare the previous version with the current version, and while doing that comparison it will use the rules that you have selected.</p><p>So in this case, since all options (Added, Replaced, Removed) are selected, then <em>any</em> text change in the website page will trigger a "change" (and optionally send an alert)</p><p>However, if you select only "<strong>Added lines</strong>" and "<strong>Replaced/changed lines</strong>" then you will not get an alert if something unrelated is removed, only if something is added new, or removed.</p><p>It's important to keep in mind that the exact calculation of "<strong>replaced</strong>" and "<strong>added</strong>" depends on how similar the texts are, so in most cases if you want to get an alert when NEW content is added, it's definitely worth selecting both of those options (and leave <strong>Removed lines</strong> unchecked)</p><p>&nbsp;</p><h3>What about completely new content on the webpage thats never been used before?</h3><p>In the case that you really really only want completely new content on the web page that has never been seen before by changedetection.io, you can use the "<strong>Only trigger when unique lines appear"</strong> option, this means that every time a new version of web page is detected it will scan all current and old versions of the content and only tell you when <em><strong>some completely new and unseen content has appeared.</strong></em></p><p>This can be handy when you're scraping a list of links or headlines and you want to be totally sure that they never appear in your alerts again (some websites re-use old articles for example)</p><p>&nbsp;</p><p>&nbsp;</p><p>Have fun! remember, there's many more options under "Filters &amp; Triggers" and I recommend that you experiment with them all :)</p><p>&nbsp;</p><p>&nbsp;</p></div> Fri, 05 Jan 2024 10:52:15 +0000 Stephen 30 at https://changedetection.io Automatically adding new pages to watch from existing results https://changedetection.io/tutorial/automatically-adding-new-pages-watch-existing-results <span class="field field--name-title field--type-string field--label-hidden">Automatically adding new pages to watch from existing results</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><a title="View user profile." href="/tech-writer/stephen" class="username">Stephen</a></span> <span class="field field--name-created field--type-created field--label-hidden"><time datetime="2024-01-03T16:01:52+01:00" title="Wednesday, January 3, 2024 - 16:01" class="datetime">Wed, 01/03/2024 - 16:01</time> </span> <div class="field field--name-field-topic field--type-entity-reference field--label-above"> <div class="field__label">Topic</div> <div class='field__items'> <div class="field__item"><a href="/topic/how" hreflang="en-gb">How-To</a></div> </div> </div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Think of the situation where you are watching your favourite ecommerce website, and you want to start automatically watching any NEW pages for changes.</p><p>For example, you might be interested in a list of search results for a product, but then you also want to follow/watch those product pages for changes (maybe price changes, availability etc)</p><p>Since version <code class="language-plaintext">0.45.11</code> it is possible to use the built in API to ask changedetection.io to insert a new link into its database, as a plaintext list of links (with a tag/group as an optional argument), we can use the 'notifications' tab to tell changedetection.io to notify itself to add a new link :)</p><p>&nbsp;</p><p>Here's how! In this example we will use CashConverters as our example.</p><p>&nbsp;</p><img src="/sites/changedetection.io/files/inline-images/image_59.png" data-entity-uuid="a6cddd15-f40f-4637-b870-c87ab5726c6c" data-entity-type="file" width="971" height="600" loading="lazy"><p>&nbsp;</p><h2>Step 1 - Add the website URL and configure the filters</h2><p>Using the current URL, copied and paste from your browser, as the URL in changedetection to watch.</p><p>&nbsp;</p><img src="/sites/changedetection.io/files/inline-images/image_53.png" data-entity-uuid="f450c90b-75f6-4321-9793-c3d02b96b357" data-entity-type="file" width="1127" height="411" loading="lazy"><p>&nbsp;</p><p>Now in this case, the VisualSelector is not quite what we want, because we are only interested in <em>all</em> of the links to the products, additionally we are interested in the "HREF" part of the "A HREF" part of the link so that we can see what the products link is.</p><p>&nbsp;</p><img src="/sites/changedetection.io/files/inline-images/image_55.png" data-entity-uuid="63286376-802b-439a-b962-aaee170236b5" data-entity-type="file" width="904" height="114" loading="lazy"><p>&nbsp;</p><p>Fortunately, they make it super easy for us, the link is clearly marked with the CSS class name &nbsp;<code class="language-plaintext">product-item__price</code>&nbsp;</p><p>So then to get a list of URLs for products, we can use xPath to ask it to extract the "href" part for us, and only return that list.</p><p>We "<em>simply</em>" use the Filter Rule &nbsp;<code class="language-plaintext">//a[@class="product-item__title"]/@href</code>&nbsp;</p><p><em><strong>Ah but wait! </strong>We need to be sure we have the full link, including https:// and the domain name/website URL.</em></p><p>Change to use the Filter Rule &nbsp;<code class="language-plaintext">xpath:for-each(//a[@class="product-item__title"]/@href, function($a) { concat("https://cashconverters.co.uk", $a) })</code>&nbsp;</p><p>( We will make this easier in the future with some plugins that will support easily appending text to each line of results )</p><p>&nbsp;</p><img src="/sites/changedetection.io/files/inline-images/image_56.png" data-entity-uuid="c6054a28-7cb6-42fb-ae15-20f4e1008ed9" data-entity-type="file" alt="Showing how the filter looks for adding the domain to automatically discovered links" width="1048" height="289" loading="lazy"><p>&nbsp;</p><p>Now we check out the <strong>Preview</strong> or <strong>Difference Page</strong> output, and we can see a nice list of links</p><img src="/sites/changedetection.io/files/inline-images/image_57.png" data-entity-uuid="1b177aa0-1aae-4613-bd4d-37d948d908e1" data-entity-type="file" alt="List of links discovered for automatic following" width="995" height="528" loading="lazy"><p>&nbsp;</p><h2>Step 2 - Automatically importing the URLs via the API</h2><p>The built-in<a href="https://changedetection.io/docs/api_v1/index.html#api-Watch-Import"> API supports importing a list (plain-text) of URLs with an option organisational tag/group</a></p><p>Using that, we will make changedetection.io "notify" its own API of any changes to that URL list</p><p>&nbsp;</p><p>Make sure your API access is turned on, and you have the key ready (Visit &nbsp;Settings &gt; API )</p><p>&nbsp;</p><img src="/sites/changedetection.io/files/inline-images/image_58.png" data-entity-uuid="5904d7b8-fc2c-4ce9-a764-6e0940c9bee9" data-entity-type="file" width="695" height="340" loading="lazy"><p>&nbsp;</p><p>We will use that <a href="https://github.com/dgtlmoon/changedetection.io/wiki/Notification-configuration-notes#postposts">API key in our notification URL</a>, So the URL to notify (to automatically import the list of URLS) would be (careful to include the + at the start, this signifies that it should be a "http header")</p><p><code>post://localhost:5000/api/v1/import?tag=CashConverters&amp;+x-api-key=dfb4d69efdec620e30edcd916c545efc</code></p><p>or in the case that you're using <a href="https://changedetection.io/#subscription">our beloved subscription service</a></p><p><code class="language-plaintext">posts://lemonade.changedetection.io/your-loginURL/api/v1/import?tag=CashConverters&amp;+x-api-key=dfb4d69efdec620e30edcd916c545efc</code></p><p>Use "<strong>post://</strong>" for non-SSL and "<strong>posts://</strong>" if your installation lives on a HTTPS protected address.</p><p>And set the <strong>Notification Body</strong> to only "<code>{{current_snapshot}}</code>" then you can press <strong>Send test notification</strong>, this will send all of those URLs for population in changedetection.io</p><p>&nbsp;</p><p><img src="/sites/changedetection.io/files/inline-images/image_61.png" data-entity-uuid="c911d17c-fda6-4330-b8d7-eb03c4092ea9" data-entity-type="file" alt="Showing how to configure the API to automatically add links" width="742" height="558" loading="lazy"></p><p>&nbsp;</p><p>Once you click<strong> "send test notifcation"</strong> with <strong>{{current_snapshot}}</strong>, you should then see all those links in &nbsp;your watch list</p><p>&nbsp;</p><p><img src="/sites/changedetection.io/files/inline-images/image_68.png" data-entity-uuid="adf65f7d-cd61-4252-af9e-25f081449c97" data-entity-type="file" alt="List of automatically added links from website" width="1160" height="446" loading="lazy"></p><p>&nbsp;</p><p>By default, it will only add "new" links</p><p>&nbsp;</p><p>Have fun, and experiment! Happy change detecting :)</p><p>&nbsp;</p></div> Wed, 03 Jan 2024 15:01:52 +0000 Stephen 29 at https://changedetection.io Scrape and Extract data from websites and draw charts - How to gain valuable long-term insights https://changedetection.io/tutorial/extract-data-websites-and-draw-charts-how-gain-valuable-long-term-insights <span class="field field--name-title field--type-string field--label-hidden">Scrape and Extract data from websites and draw charts - How to gain valuable long-term insights</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><a title="View user profile." href="/tech-writer/stephen" class="username">Stephen</a></span> <span class="field field--name-created field--type-created field--label-hidden"><time datetime="2023-12-27T10:04:23+01:00" title="Wednesday, December 27, 2023 - 10:04" class="datetime">Wed, 12/27/2023 - 10:04</time> </span> <div class="field field--name-field-topic field--type-entity-reference field--label-above"> <div class="field__label">Topic</div> <div class='field__items'> <div class="field__item"><a href="/topic/how" hreflang="en-gb">How-To</a></div> </div> </div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Visualising long-term insights can lead to a lot of interesting and valuable realisations.</p><p>The web is always changing, but how does that information look across a week? a month? a year?</p><p>What if you wanted to draw a graph to show the number of properties advertised over a week? a month? a year?&nbsp;</p><p><img src="/sites/changedetection.io/files/2023-12/changedet-line-chart-extract-data.png" width="333" class="align-right"></p><p>Using the <strong>Extract Data</strong> feature you can easily build a report (scrape data) based on specific text on a website, some examples;</p><ul><li>Number of real-estate results for a given search</li><li>Number of google results for a given search</li><li>Airbnb advertised apartments in a city</li><li>Temperature or other climate information</li><li>Scrape and graph prices, availability and more</li></ul><p>&nbsp;</p><p>Basically, any web page where it contains a number - can be used to build valuable reports.</p><p>&nbsp;</p><h2>Example - Graph the number of results returned for a real-estate search over time</h2><p><em><strong>Scenario</strong></em>: You're watching a local real-estate website, and want to visualise trends over time for the number of search results, you've already setup your watch.</p><p>Here, we can see that the text says<strong> "We found </strong><em><strong>473</strong></em><strong> properties for you"</strong>, so let's <strong>Extract Data</strong> on that text, receive the number only component as CSV and then draw a graph.</p><p>( In other words, let's build a graph over time of that "<strong>473</strong>" results word )</p><p>&nbsp;</p><img src="/sites/changedetection.io/files/inline-images/image_48.png" data-entity-uuid="3b62a6a2-2bc2-4927-a5a4-b89cd018c95f" data-entity-type="file" alt="Screenshot of the text from the real estate website we want to extract" width="646" class="align-center" height="686" loading="lazy"><p>&nbsp;</p><p>Head on over to your watch over-view list, click on <strong>DIFF</strong> to bring up the differences inspector, then click &nbsp;the <strong>Extract Data </strong>tab</p><p>&nbsp;</p><img src="/sites/changedetection.io/files/inline-images/image_49.png" data-entity-uuid="ad74f587-d04f-4a3f-b538-9bccd1ff76fc" data-entity-type="file" alt="Text 'difference'" width="702" class="align-center" height="223" loading="lazy"><p>&nbsp;</p><p>So here's how to tell changedetection to extract that "473" over time, from all previous change snapshots and build a nice CSV report (of which we can easily import into Google Sheets and draw pretty graphs! )</p><p>&nbsp;</p><img src="/sites/changedetection.io/files/inline-images/image_50.png" data-entity-uuid="dd012315-b15c-494e-849e-175a97b20462" data-entity-type="file" alt="Showing how to extract given text" width="698" class="align-center" height="844" loading="lazy"><p>The trick here is that we ONLY want to include the "473" text, not the whole "We found 473...", otherwise the spreadsheet will not understand the value as it would contain a mix of numbers and text.&nbsp;</p><p>So to ONLY include the "473" text we can use a simple <a href="https://en.wikipedia.org/wiki/Regular_expression">Regular Expression</a> (A simple rule that tells it exactly what text to be interested in), using round brackets "()" we can tell changedetection to just use any digits that come after "We found..."</p><p>In our case, the best is to use <code>([0-9]+)</code> as the rule (any number 0-9 that is repeated), because its wrapped in "()" it means it will only pull that text/digits</p><p>So go ahead and enter &nbsp;<code>We found ([0-9]+)</code></p><p>&nbsp;</p><p>Then click <strong>Extract as CSV, </strong>in a few moments the system will look over all previous change snapshots, extract the text, and send you a CSV with the Time/date, time (in epoch format), and the number in the brackets from the Regular Expression.</p><p>&nbsp;</p><p>And here we have it :-) after Importing to Google Sheets, then follow the steps to <a href="https://support.google.com/docs/answer/63824?hl=en">how to create a chart in google sheets</a></p><p>&nbsp;</p><img src="/sites/changedetection.io/files/inline-images/image_51.png" data-entity-uuid="234f83ba-693c-4f63-9ad0-84438771e2cb" data-entity-type="file" alt="Google graph chart spreadsheet of extracted data" width="710" class="align-center" height="526" loading="lazy"><p>&nbsp;</p><p>More fine examples to come (feel free to contact us and ask for a recipe!), but here is just one basic way to gather super interesting visualised line/chart data from website pages over time.</p><p>&nbsp;</p></div> Wed, 27 Dec 2023 09:04:23 +0000 Stephen 28 at https://changedetection.io Source code monitor - How to get alerts on changes to HTML source code https://changedetection.io/tutorial/source-code-monitor-how-get-alerts-changes-html-source-code <span class="field field--name-title field--type-string field--label-hidden">Source code monitor - How to get alerts on changes to HTML source code</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><a title="View user profile." href="/tech-writer/stephen" class="username">Stephen</a></span> <span class="field field--name-created field--type-created field--label-hidden"><time datetime="2023-12-08T10:01:41+01:00" title="Friday, December 8, 2023 - 10:01" class="datetime">Fri, 12/08/2023 - 10:01</time> </span> <div class="field field--name-field-topic field--type-entity-reference field--label-above"> <div class="field__label">Topic</div> <div class='field__items'> <div class="field__item"><a href="/topic/how" hreflang="en-gb">How-To</a></div> </div> </div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>How to get alerts on changes to HTML source code? Sometimes you need to know when a very specific part of the HTML changes, for example you're watching a competitor and want to know when they change their shops metatags.</p><p>Or maybe you want to know if certain parts of your HTML have changed without your approval? Perhaps you are being pro-active in monitoring your site for defacement, hacking and more.</p><p>&nbsp;</p><p>Another great feature of changedetection.io is that you can specify that you're interested in following the "source code" as the content change detection.</p><p>Just simply prefix the URL you are watching with <strong>"</strong><code><strong>source:</strong></code><strong>"</strong></p><img src="/sites/changedetection.io/files/inline-images/image_43.png" data-entity-uuid="27a7822c-4d9e-4626-aace-94a114bb1094" data-entity-type="file" alt="Following source code for changes and get alerts - set up" width="928" height="206" loading="lazy"><p>&nbsp;</p><p>Then, for example let's say we are interesting in getting alerts/notifications when that website changes their <code>&lt;title&gt;</code> tag, click<strong> [edit]</strong> then head on over to <strong>Filters &nbsp;&amp; Triggers</strong><br><br><img src="/sites/changedetection.io/files/inline-images/image_46.png" data-entity-uuid="1a6ad0c8-3a81-457f-8828-1f186dede219" data-entity-type="file" alt="Adding title tag for following HTML changes" width="1099" height="294" loading="lazy"></p><p>Adding <code>//title</code> (a simple xPath rule) will now make changedetection.io only follow the <code>&lt;title&gt;</code> tag.</p><p>&nbsp;</p><p>Or if you prefer simpler CSS, you can use for example <code>title</code> or <code>div</code> or <code>div span.interesting</code>&nbsp;</p><p>&nbsp;</p><p>Clicking <em><strong>Preview</strong></em> after the page has fetched shows us that it is correctly following the HTML for changes, and only that HTML for changes.</p><p>&nbsp;</p><img src="/sites/changedetection.io/files/inline-images/image_47.png" data-entity-uuid="8ce473c7-ad0e-4540-9f50-9ffb8810d7a9" data-entity-type="file" alt="HTML being followed for changes" width="938" height="310" loading="lazy"><p>&nbsp;</p><p>So when the title tag - in the HTML source changes, you can now get alerts/notifications, this is a super simple example and you can use your wild imagination of what you could do with this :)</p><p>You can also specify CSS, so if you wanted to follow changes to a some HTML by their CSS tag, then that is possible too.</p><p><strong>What about defacement monitoring?</strong> that's certainly possible here too, often clever hackers will insert some HTML that is not visible in the browser but can have other affects, so another nice idea is to watch your site for changes in your HTML that you were not aware of.</p><p>&nbsp;</p><p>Have fun!</p></div> Fri, 08 Dec 2023 09:01:41 +0000 Stephen 27 at https://changedetection.io BestBuy - Get "Coming Soon" product in stock notifications using the restock detection! https://changedetection.io/tutorial/bestbuy-get-coming-soon-product-stock-notifications-using-restock-detection <span class="field field--name-title field--type-string field--label-hidden">BestBuy - Get &quot;Coming Soon&quot; product in stock notifications using the restock detection!</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><a title="View user profile." href="/tech-writer/stephen" class="username">Stephen</a></span> <span class="field field--name-created field--type-created field--label-hidden"><time datetime="2023-11-29T18:15:52+01:00" title="Wednesday, November 29, 2023 - 18:15" class="datetime">Wed, 11/29/2023 - 18:15</time> </span> <div class="field field--name-field-topic field--type-entity-reference field--label-above"> <div class="field__label">Topic</div> <div class='field__items'> <div class="field__item"><a href="/topic/how" hreflang="en-gb">How-To</a></div> </div> </div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>&nbsp;</p><p><em><strong>Best Buy</strong></em> excels in providing a comprehensive array of electronics and tech gadgets, offering a diverse range of products both in-store and online. Their stores provide an immersive experience, often staffed with knowledgeable experts who assist customers in making informed decisions.</p><p>It's all perfect except for one thing - <strong>"COMING SOON</strong>"<strong> </strong>on a product that you really want!</p><img src="/sites/changedetection.io/files/inline-images/image_44.png" data-entity-uuid="4f459b36-c5bc-4778-a629-f5ba9f45337c" data-entity-type="file" alt="Best Buy &quot;Coming soon&quot; alerts status" class="align-right" width="395" height="438" loading="lazy"><p>&nbsp;</p><p>So just like we learned over at the <a href="https://changedetection.io/tutorial/how-get-product-re-stock-or-back-stock-alerts-and-notifications">"How to get product restock alerts" tutorial</a> , the restock detector will work perfectly fine with BestBuy because it can automatically recognise the <em><strong>"Coming Soon"</strong></em> text.</p><p>&nbsp;</p><p><em><strong>( Follow the 2 easy steps in that tutorial ! )</strong></em></p><p>&nbsp;</p><p>But over at our hosted/subscription offer, we have a special workaround for you - if you receive the "Hello Choose a country!" message, you can simply appear from a different proxy/location.</p><p>&nbsp;</p><p>Changedetection.io subscription offers many unique locations to 'appear' to call from, this can be super handy if you're watching a website thats not in your own country or if your IP is detected incorrectly.</p><p>&nbsp;</p><img src="/sites/changedetection.io/files/inline-images/image_42.png" data-entity-uuid="17062401-bc33-4be7-b5dc-4b33a59d6c74" data-entity-type="file" alt="If you get blocked, try this" width="235" class="align-left" height="274" loading="lazy"><p>&nbsp;</p><p>So if you get this "Choose a country" message you can choose a new location to watch your products on BestBuy from.</p><p>We offer several different locations that are included as part of the simple flat monthly pricing that we offer.</p><p>&nbsp;</p><img src="/sites/changedetection.io/files/inline-images/image_45.png" data-entity-uuid="6706b968-fee7-4b0f-bfc9-00fab2bfe082" data-entity-type="file" alt="Best Buy &quot;Choose a country&quot; work around for getting alerts" class="align-right" width="372" height="303" loading="lazy"><p>&nbsp;</p><p>So simply click on "Edit" and then "Request" and choose the <strong>USA #1</strong> location.</p><p>&nbsp;</p><p>Then, let the system recheck the BestBuys product page that contains the "COMING SOON" text, and you should be all set :)</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>Once everything is working, and the product comes available and is no longer "coming soon" your list of website watches will now contain a happy green tag "<strong>In stock</strong>".</p><figure role="group" class="caption caption-img align-center"> <img alt="product is detected as being back in stock and restocked (has no out-of-stock text)" src="/sites/changedetection.io/files/inline-images/image_41.png"> <figcaption>Happy green icon when the Best Buy product is no longer "Coming Soon" !</figcaption> </figure> <p>Ofcourse dont, forget to add all your favourite notifications to your Best Buy "Coming soon" alerts - email, Discord and more!</p><p>&nbsp;</p><p>&nbsp;</p><p>Good luck and have fun!</p></div> Wed, 29 Nov 2023 17:15:52 +0000 Stephen 26 at https://changedetection.io