2012-07-04 42 views
1

嗯,我有這個代碼,應該檢查是否通過首先檢查並下載到一個字符串的HTML,然後再檢查每兩秒和HTML如果它已經改變是否更改HTML。問題是,該腳本表示,它已經改變了所有的時間,並不斷給我相同的HTML代碼回來。一分鐘男人,蟒蛇3

#!/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.") 

在此先感謝;)

回答

1

你需要告訴解釋來設置全局HTML變量在firstcheck()功能。

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值「海峽」。

+0

大:d能得到那固定;)感謝^ ^。 – Napoleon

1

它看起來並不像你firstcheck呼籲所有,因此HTML總是要被海峽。你可以把它用替換塊,而裏面真正的工作:

while True: 
    firstcheck() 
    secondcheck() 

但它是清潔劑有一個腳本,看起來是這樣的

while True: 
    hogniergay = urlopen(url) 
    result = hogniergay.read() 
    hogniergay.close() 
    if result != current: 
     print (result) 
     current = result 
    time.sleep(2)