2016-08-26 4 views
-1

Webページでフレーズが変更されたときにメールで通知するスクリプトがあります。私は多くのことを試みましたが、私はisAvailable()の機能を修正することができません。スクリプトは利用可能なサーバーを提供するかどうかにかかわらず、毎回 "利用できません"あなたに手がかりはありますか?そうでない場合は、ウェブサイトが利用可能な場合はあなたのisAvailable()機能がTrueを返しページを確認するスクリプト

# CONFIG 
TARGET_KIMSUFI_ID = "160sk1" # something like 160sk1 
TARGET_DESCR  = "" 
EMAIL_FROM_ADDRS = "" 
EMAIL_TO_ADRS  = "" 
EMAIL_SMTP_LOGIN = EMAIL_FROM_ADDRS 
EMAIL_SMTP_PASSWD = "" 
EMAIL_SMTP_SERVER = "" 

# CODE 
import urllib.request 
import smtplib 
import time 

def isAvailable(): 
    rawPageContent = urllib.request.urlopen("https://www.kimsufi.com/en/servers.xml").read() 
    rawPageContent = str(rawPageContent) 
    poz = rawPageContent.find(TARGET_KIMSUFI_ID) 
    row = rawPageContent[poz:] 
    poz = row.find("</tr>") 
    row = row[:poz] 
    searchText = "Currently being replenished" 
    poz = row.find(searchText) 
    return poz != -1 

def sendEmailWithMessageAvailable(): 
    msg = "From: KIMSUFI HUNTER <"+EMAIL_FROM_ADDRS+">\r\n"+\ 
     "To: "+EMAIL_TO_ADRS+"\r\n"+\ 
     "Subject: [KIMSUFI] "+TARGET_DESCR+" is now AVAILABLE!\r\n"+\ 
     "\r\n"+\ 
     "kimsufi-hunter.py has detected that "+TARGET_DESCR+" is now ["+time.ctime()+"] available!\r\n"+\ 
     "https://www.kimsufi.com/en/\r\n" 
    server = smtplib.SMTP(EMAIL_SMTP_SERVER) 
    server.starttls() 
    server.login(EMAIL_SMTP_LOGIN,EMAIL_SMTP_PASSWD) 
    server.sendmail(EMAIL_FROM_ADDRS, EMAIL_TO_ADRS, msg) 
    server.quit() 

while True: 
    if isAvailable(): 
     print(time.ctime() + " -- KIMSUFI "+TARGET_DESCR+" not available") 
     nextSleep = 5 #5secs 
    else: 
     print(time.ctime() + " -- KIMSUFI "+TARGET_DESCR+" AVAILABLE!!! -- sleeping for 5 minutes") 
     sendEmailWithMessageAvailable() 
     nextSleep = 5*60 #5mins 
    time.sleep(nextSleep) 
+2

:あなたはにif文を変更する必要があります。それはurllibよりずっと優れています。 – bravosierra99

+0

'if isAvailable():print( 'not available')' ??? –

+0

@ bravosierra99私はそれを見ていただきありがとうございますが、このスクリプトのために私はurllibを使用する必要があります –

答えて

1

False。これは今、あなたを助けていない可能性がありますが、私は強く強く「リクエスト」ライブラリを探してお勧めします

if not isAvailable(): 
    ... 
+0

、ありがとうございます! –

関連する問題