python用法: post一個http請求, schedule一個task

來源:互聯網
上載者:User

內容在http://iihero.cn上也有,這裡轉摘一下。
近期用空閑時間看了看python的一部分module,感覺這斯功能確實so good, so powerful.
(1) 用它post一個http請求:

import urllib,urllib2,cookielib 
def post3():   
# for mail.sina.com.cn

    cj = cookielib.CookieJar() 
    url_login = 'http://mail.sina.com.cn/cgi-bin/login.cgi' 
    body = (('logintype','login'), ('u','username'), 
        ('psw', '********'))
    opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) 
    #opener.addheaders = [('User-agent', 'Opera/9.23')] 
    opener.addheaders = [('User-agent', 
        'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')]
    urllib2.install_opener(opener) 
    req=urllib2.Request(url_login,urllib.urlencode(body)) 
    u=urllib2.urlopen(req)
    print u.read().decode('utf-8').encode('gbk')

 

下午,試了一下python的http 相關類的方法,用上述代碼登入新浪郵箱,試了一段時間,
比較關鍵的是User-agent,上邊兩種瀏覽器的agent都支援。估計python預設的User-agent得不到sina.com的驗證。

python寫這種http method代碼還是蠻方便的。

(2) 寫一個定時執行任務的小東東,這裡是單線程版本,要改成多線程的也容易。

 

#!/usr/bin/env python
#coding=utf-8

import thread, time

def task():
    '''
    Here we can execute some task to be scheduled every n seconds
    '''
    print "task doing ... ..."

def main(n):
    t = time.time()
    start_t = t
    end_t = start_t + 60*60*72
    #while (t < end_t):
    while True:
        task()
        time.sleep(n)
        t = time.time()
        
if __name__ == "__main__":
    
    try:
        main(5)
    except KeyboardInterrupt:
        print "System exit ... ... "
        sys.exit(1)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.