好吧,我有这个代码应该通过首先检查并将html下载到字符串中来检查html是否被更改,然后每两秒再次检查并打印html(如果已更改)。问题是脚本说它一直在变化,并且不断给我提供相同的html代码。
#!/usr/bin/env python
import time
start = time.time()
from urllib.request import urlopen
data = str
html = str
def firstcheck():
url = 'http://www.hacker.org/challenge/misc/minuteman.php'
hogniergay = urlopen(url)
data = hogniergay.read()
hogniergay.close()
html = data
def secondcheck():
url = 'http://www.hacker.org/challenge/misc/minuteman.php'
hogniergay = urlopen(url)
data = hogniergay.read()
hogniergay.close()
if not html == data:
print(data)
while True:
secondcheck()
time.sleep(2)
print ("it took", time.time() - start, "seconds.")
提前致谢;)
答案 0 :(得分:1)
您需要告诉解释器在firstcheck()
函数中设置全局html变量。
def firstcheck():
url = 'http://www.hacker.org/challenge/misc/minuteman.php'
hogniergay = urlopen(url)
data = hogniergay.read()
hogniergay.close()
global html
html = data
现在secondcheck()
函数正在检查html值“str”。
答案 1 :(得分:1)
看起来你根本没有调用firstcheck,所以html总是会是str。您可以通过将while内的块替换为True来使其工作:
while True:
firstcheck()
secondcheck()
但是看起来像这样的脚本会更清晰
while True:
hogniergay = urlopen(url)
result = hogniergay.read()
hogniergay.close()
if result != current:
print (result)
current = result
time.sleep(2)