Created
April 28, 2017 12:44
-
-
Save kevincdurand1/22c7b2421010fd069847676007e0d7f4 to your computer and use it in GitHub Desktop.
Monitor A Website For Changes With Python
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Import requests (to download the page) | |
import requests | |
# Import BeautifulSoup (to parse what we download) | |
from bs4 import BeautifulSoup | |
# Import Time (to add a delay between the times the scape runs) | |
import time | |
# Import smtplib (to allow us to email) | |
import smtplib | |
# This is a pretty simple script. The script downloads the homepage of VentureBeat, and if it finds some text, emails me. | |
# If it does not find some text, it waits 60 seconds and downloads the homepage again. | |
# while this is true (it is true by default), | |
while True: | |
# set the url as VentureBeat, | |
url = "http://Google.com/" | |
# set the headers like we are a browser, | |
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'} | |
# download the homepage | |
response = requests.get(url, headers=headers) | |
# parse the downloaded homepage and grab all text, then, | |
soup = BeautifulSoup(response.text, "lxml") | |
# if the number of times the word "Google" occurs on the page is less than 1, | |
if str(soup).find("Google") == -1: | |
# wait 60 seconds, | |
time.sleep(60) | |
# continue with the script, | |
continue | |
# but if the word "Google" occurs any other number of times, | |
else: | |
# create an email message with just a subject line, | |
msg = 'Subject: This is Chris\'s script talking, CHECK GOOGLE!' | |
# set the 'from' address, | |
fromaddr = 'YOUR_EMAIL_ADDRESS' | |
# set the 'to' addresses, | |
toaddrs = ['AN_EMAIL_ADDRESS','A_SECOND_EMAIL_ADDRESS', 'A_THIRD_EMAIL_ADDRESS'] | |
# setup the email server, | |
# server = smtplib.SMTP('smtp.gmail.com', 587) | |
# server.starttls() | |
# add my account login name and password, | |
# server.login("YOUR_EMAIL_ADDRESS", "YOUR_PASSWORD") | |
# Print the email's contents | |
print('From: ' + fromaddr) | |
print('To: ' + str(toaddrs)) | |
print('Message: ' + msg) | |
# send the email | |
# server.sendmail(fromaddr, toaddrs, msg) | |
# disconnect from the server | |
# server.quit() | |
break |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment