标签:
1、最简单
urllib.request response = urllib.request.urlopen() html = response.read()
2、使用 Request
urllib.request req = urllib.request.Request() response = urllib.request.urlopen(req) the_page = response.read()
3、发送数据
urllib.parse urllib.request url = user_agent = values = { : , : , : } data = urllib.parse.urlencode(values) req = urllib.request.Request(url, data) req.add_header(, ) response = urllib.request.urlopen(req) the_page = response.read() (the_page.decode())
4、发送数据和header
urllib.parse urllib.request url = user_agent = values = { : , : , : } headers = { : user_agent } data = urllib.parse.urlencode(values) req = urllib.request.Request(url, data, headers) response = urllib.request.urlopen(req) the_page = response.read() (the_page.decode())
5、http 错误
urllib.request req = urllib.request.Request() : urllib.request.urlopen(req) urllib.error.HTTPError as e: (e.code) (e.read().decode())
6、异常处理1
urllib.request Request, urlopen urllib.error URLError, HTTPError req = Request() : response = urlopen(req) HTTPError as e: () (, e.code) URLError as e: () (, e.reason) : () (response.read().decode())
7、异常处理2
urllib.request Request, urlopen urllib.error URLError req = Request() : response = urlopen(req) URLError as e: hasattr(e, ): () (, e.reason) hasattr(e, ): () (, e.code) : () (response.read().decode())
8、HTTP 认证
urllib.request password_mgr = urllib.request.HTTPPasswordMgrWithDefaultRealm() top_level_url = password_mgr.add_password(None, top_level_url, , ) handler = urllib.request.HTTPBasicAuthHandler(password_mgr) opener = urllib.request.build_opener(handler) a_url = x = opener.open(a_url) (x.read()) urllib.request.install_opener(opener) a = urllib.request.urlopen(a_url).read().decode() (a)
9、使用代理
urllib.request proxy_support = urllib.request.ProxyHandler({: }) opener = urllib.request.build_opener(proxy_support) urllib.request.install_opener(opener) a = urllib.request.urlopen().read().decode() (a)
10、超时
socket urllib.request timeout = 2 socket.setdefaulttimeout(timeout) req = urllib.request.Request() a = urllib.request.urlopen(req).read() (a)
标签:
原文地址:http://my.oschina.net/bruceray/blog/488910