打開指定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()