我正在编写一个机器人,它检查自上次抓取以来给定网站上是否有任何更改。为此,它抓取网站,将其 html 代码存储在本地文件中,然后一遍又一遍地抓取它,如果新旧版本之间存在差异,它会覆盖本地文件并打印“已触发”。问题是我的脚本总是会发现差异并覆盖文件,即使没有更改。
可重现的例子:
import requests
import time
import os
def compare(file, url):
if os.path.isfile("./" + file):
scrape = requests.get(url).text
with open(file) as f:
txt=f.read()
if not txt == scrape:
with open(file, "w") as f:
f.write(scrape)
print("Triggered")
else:
scrape=requests.get(url).text
with open(file, "w") as f:
f.write(scrape)
ceu = "https://hro.ceu.edu/find-job"
ceu_file = "ceu.html"
while True:
compare(ceu, ceu_file)
time.sleep(10)
因此,问题在于每次抓取网站时都会触发脚本 - 即使该网站不会每 10 秒更改一次。为什么然后txt==scrape在函数中始终为 false 从而触发脚本?
相关分类