2010-11-03 64 views
1

一點點,我需要一點點幫助這裏,因爲我是新來的蟒蛇,我試圖做一個很好的應用程序,可以告訴我,如果我的網站已關閉或沒有,然後發送到Twitter。的蟒蛇幫助

class Tweet(webapp.RequestHandler): 
    def get(self): 
    import oauth 
    client = oauth.TwitterClient(TWITTER_CONSUMER_KEY, 
           TWITTER_CONSUMER_SECRET, 
           None 
           ) 

    webstatus = {"status": "this is where the site status need's to be", 
       "lat": 44.42765100, 
       "long":26.103172 
       } 

    client.make_request('http://twitter.com/statuses/update.json', 
         token=TWITTER_ACCESS_TOKEN, 
         secret=TWITTER_ACCESS_TOKEN_SECRET, 
         additional_params=webstatus, 
         protected=True, 
         method='POST' 
         ) 
    self.response.out.write(webstatus) 


def main(): 
    application = webapp.WSGIApplication([('/', Tweet)]) 
    util.run_wsgi_app(application) 


if __name__ == '__main__': 
    main() 

現在查詢網站部分缺失,所以我非常新的Python和我需要的幫助

函數/類的任何想法,可以查看特定網址,答案一點點/錯誤代碼可以發送郵件使用上腳本

到Twitter和我需要一點點幫助在腳本執行上面的URL檢查,這是我第一次與蟒蛇進行交互。

,如果你想知道,上層階級的使用https://github.com/mikeknapp/AppEngine-OAuth-Library LIB

歡呼

PS:鏈接檢查功能需要的是基於urlfetch類,對於谷歌的AppEngine

+0

你是不是想告訴如果您的網站關閉或如果Twitter下來? – mikerobi 2010-11-03 18:07:18

+0

如果我的網站出現故障 – necenzurat 2010-11-04 17:46:53

+0

-1:您沒有測試就接受了答案! – 2010-11-05 21:43:34

回答

3

你可以使用谷歌應用程序引擎URL Fetch API。
fetch()函數返回一個包含HTTP STATUS_CODE一個Response object

只是獲取網址,並用這樣的檢查狀態:

from google.appengine.api import urlfetch 
def is_down(url): 
    result = urlfetch.fetch(url, method = urlfetch.HEAD) 
    return result.status_code != 200 
+1

也許最好使用'fetch(url,method = urlfetch.HEAD)',這樣只返回HTTP頭部而不是整個網頁的內容。 – 2010-11-03 22:18:42

+0

@Giulio好點 – systempuntoout 2010-11-03 22:20:04

+0

@Giulio只要確保你的應用程序支持HEAD請求;一些框架不會默認。 – 2010-11-03 23:31:44

1

更加安全檢查,如果一個網站存在:

import httplib 
from httplib import HTTP 
from urlparse import urlparse 

def checkUrl(url): 
    p = urlparse(url) 
    h = HTTP(p[1]) 
    h.putrequest('HEAD', p[2]) 
    h.endheaders() 
    return h.getreply()[0] == httplib.OK 

我們只獲取給定URL的標題並檢查響應代碼的Web服務器。

更新:最後一行根據Daenyth的說法修改。

+3

最後兩行應該是'return h.getreply()[0] == httplib.OK' – Daenyth 2010-11-03 18:25:43

+1

建議:請求您的網站提供特殊狀態請求,以獲取比請求網頁更好的診斷信息。這樣可以更容易解析,因爲您可以將它設置爲JSON或本機數據類型。使用python,我通常在我的網站上有一個/狀態網址。使用更簡單的PHP站點,我檢查$ _REQUEST ['status']變量。 – mvrak 2010-11-03 18:50:35

+0

我在10分鐘內完成了php腳本,並使用curl錯誤報告作爲消息 – necenzurat 2010-11-04 17:50:28