def request(url, data={}, headers={}, timeout=10):
""" Returns a file-like object to the given URL.
"""
if cookies is not None:
f = urllib2.HTTPCookieProcessor(cookies)
f = urllib2.build_opener(f)
else:
f = urllib2.build_opener()
try:
f = f.open(Request(url, urlencode(data) if data else None, headers), timeout=timeout)
except URLError as e:
status = getattr(e, 'code', None) # HTTPError
if status == 401:
raise Forbidden
if status == 403:
raise Forbidden
if status == 404:
raise NotFound
if status == 420:
raise TooManyRequests
if status == 429:
raise TooManyRequests
raise e
except socket.error as e:
if 'timed out' in repr(e.args):
raise Timeout
else:
raise e
log.info(url)
return f
评论列表
文章目录