一分钟,蟒蛇3

时间:2012-07-04 19:40:47

标签: timer python-3.x urllib2

好吧,我有这个代码应该通过首先检查并将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.")

提前致谢;)

2 个答案:

答案 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)