python學習2:urllib2

打開指定URL,捕捉超時異常

def urlopen():
    url = "http://www.sina.com/no-exist"
    try:
        s = urllib2.urlopen(url, timeout=3)
    except urllib2.HTTPError, e:
        print(e)
    else:
        print(s.read())
        s.close()

定製HTTP頭

def request():
    headers = {"User-Agent": "Mozilla/5.0", "X-my-header": "my value"}
    url = "http://blog.kamidox.com"
    req = urllib2.Request(url, headers=headers)
    s = urllib2.urlopen(req)
    print(s.read(100))
    print(req.headers)
    s.close()

POST請求

def request_post_debug():
    data = {"username": "snow", "password": "xxxxxx"}
    headers = {"User-Agent": "Mozilla/5.0", "Content-Type": "plain/text"}
    req = urllib2.Request("http://www.douban.com", data=urllib.urlencode(data), headers=headers)
    opener = urllib2.build_opener(urllib2.HTTPHandler(debuglevel=1))
    s = opener.open(req)
    print(s.read(100))
    s.close()

自定義opener,debuglevel=1可以打印debug數據

def install_debug_handler():
    opener = urllib2.build_opener(urllib2.HTTPHandler(debuglevel=1),                           urllib2.HTTPSHandler(debuglevel=1))
    urllib2.install_opener(opener)

install_debug_handler()

cookie

import cookielib
def handle_cookie():
    cookiejar = cookielib.CookieJar()
    hander = urllib2.HTTPCookieProcessor(cookiejar=cookiejar)
    opener = urllib2.build_opener(hander, urllib2.HTTPHandler(debuglevel=1))
    s = opener.open("http://www.douban.com")
    print(s.read(100))
    s.close()

    print("#" * 80)
    print(cookiejar._cookies)
    print("#" * 80)

    # 第二次訪問會包含cookie    
    s = opener.open("http://www.douban.com")
    print(s.read(100))
    s.close()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章