36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
import requests
|
|
import pushover
|
|
import hashlib
|
|
import time
|
|
import datetime
|
|
import bs4
|
|
import tinydb
|
|
import os
|
|
import difflib
|
|
|
|
pushover.init('abz8is31hd3m2e36g62w4msihj87cr')
|
|
|
|
db = tinydb.TinyDB(os.getenv('DB_FILE',default='checks.json'))
|
|
|
|
while True:
|
|
entries = db.all()
|
|
for entry in entries:
|
|
r = requests.get(entry['url']) #'https://www.europapark.de/de/uebernachten/alle-angebote/sommersaison/europa-rundreise')
|
|
html = bs4.BeautifulSoup(r.text, "html5lib")
|
|
maincontent = html.find(id='main')
|
|
diff = difflib.unified_diff(entry.get('content', ''), str(maincontent))
|
|
print(diff)
|
|
entry['content'] = str(maincontent)
|
|
diffstr = ''.join(diff)
|
|
print ('checked', datetime.datetime.now(), end=' ')
|
|
if len(diffstr) > 0:
|
|
#pushover.Client("u5w9h8gc7hpzvr5a2kh2xh4m9zpidq").send_message("EuropaPark Sommerangebote geändert!", title="Europapark Sommerangebote", url=entry['url'])
|
|
print('changed')
|
|
print(diffstr)
|
|
else:
|
|
print('unchanged')
|
|
entry['checked'] = str(datetime.datetime.now())
|
|
db.write_back(entries)
|
|
time.sleep(10)
|
|
|