Hallo Tweakers,
Probeer in Python3 een script te schrijven dat om de minuut middels een cronjob draait om te kijken of er veranderingen zijn op een bepaalde webpagina. Het script dumpt tijdens de laatste run de html als string naar een file, en bij de tweede run wordt de in memory html dump vergeleken tegen de string in de dumpfile.
waar het fout gaat is als ik de html in de variabele vergelijk met de html in de dumpfile. Als ik de inhoud print van de dumpfile en de html in de variabele, dan zie ik exact dezelfde string, ook met dezelfde lengte. Vreemd genoeg blijft de condition valideren dat ze niet hetzelfde zijn. Ook als ik de lengte van de twee verschillende string print krijg ik verschillende waarden. Dit is erg basic, python3 syntax is nieuw voor mij en ik snap dit gedrag niet. Iemand een idee?
Probeer in Python3 een script te schrijven dat om de minuut middels een cronjob draait om te kijken of er veranderingen zijn op een bepaalde webpagina. Het script dumpt tijdens de laatste run de html als string naar een file, en bij de tweede run wordt de in memory html dump vergeleken tegen de string in de dumpfile.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| import urllib.request import time with urllib.request.urlopen( 'https://www.pagina.nl/') as response: html = response.read() while True: try: # probeer dumpfile te openen waar pagina laatste keer was gedumpt f = open("output.txt","r") last = f.read() print(len(last)) print(last) print(len(html)) print(html) if last != html: # als in memory html dump verschilt van html in laatste dumpfile, overschrijf dumpfile # stuur email dat pagina is gewijzigd print("Page update found!") mail("mailadress@gmail.com,"change to page") f = open("output.txt", "w") print(html, file=f) f.close() break except IOError: #als dumpfile niet gevonden is, maak dan nieuw aan print("File does not exist, creating new..") f = open("output.txt", "w") print(html, file=f) f.close() break |
waar het fout gaat is als ik de html in de variabele vergelijk met de html in de dumpfile. Als ik de inhoud print van de dumpfile en de html in de variabele, dan zie ik exact dezelfde string, ook met dezelfde lengte. Vreemd genoeg blijft de condition valideren dat ze niet hetzelfde zijn. Ook als ik de lengte van de twee verschillende string print krijg ik verschillende waarden. Dit is erg basic, python3 syntax is nieuw voor mij en ik snap dit gedrag niet. Iemand een idee?
[ Voor 4% gewijzigd door Xanthium op 12-02-2020 13:19 ]