python 学习(四)urllib、urllib2、Request

#  -*- coding: utf-8 -*-
import urllib2
import urllib
import cookielib


url="http://www.agppp.cn"


#  最简单形式
res = urllib2.urlopen(url)
page = res.read()

# Request对象
req = urllib2.Request(url)
res = urllib2.urlopen(req)
page = res.read()

# get请求,有参数
values = {'name': 'agppp','age': '1'}
data = urllib.urlencode(values)
req = urllib2.Request(url+"?"+data)
response = urllib2.urlopen(req)
page = response.read()

# post请求
values = {'name': 'agppp','age': '1'}
data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
page = response.read()

#  添加header
header={"Referer":"http://www.baidu.com","User-Agent":"MyAgent"}
req = urllib2.Request(url,headers=header)
req.add_header("Cookie","name=agppp")
res = urllib2.urlopen(req)
page = res.read()

# 异常处理
try:
    res = urllib2.urlopen("http://blog.agppp.cn/fdsa/")
except urllib2.HTTPError, e:
    print e.code
except urllib2.URLError,e:
    print e.reason

# 获取服务器头信息
res = urllib2.urlopen(url)
print res.geturl()
print res.info()
print res.info()["Server"]
print res.getcode()

#  添加handler

# 代理handler
proxy_handler = urllib2.ProxyHandler({"http" : 'http://127.0.0.1:8081'})
# debug  handler
httpHandler = urllib2.HTTPHandler(debuglevel=1)
httpsHandler = urllib2.HTTPSHandler(debuglevel=1)
# cookie handler
cj = cookielib.CookieJar()
cookiehandler = urllib2.HTTPCookieProcessor(cj)

opener = urllib2.build_opener(httpHandler,httpsHandler)
# opener.add_handler(cookiehandler)
# opener.add_handler(proxy_handler)

res = opener.open(url)
page = res.read()




print page.decode("gbk")


Request见官方文档

comments powered by Disqus
京ICP备16019137号-1