Enthought Canopy(Pythonのデータ分析用ディストリビューション)に付属するIPython Notebookで
twitterのAPIにアクセスし、トレンド情報の取得を行おうとしているのですが、以下のようなエラーが
発生してしまい、思うような実行結果が得られていません。
ソースコードとエラーメッセージは以下のとおりです。
Python
1import twitter 2 3#データ保護の観点からキーは伏せますが、ここが合ってるのはテスト済みです。 4CONSUMER_KEY = '####' 5CONSUMER_SECRET = '####' 6OAUTH_TOKEN = '####' 7OAUTH_TOKEN_SECRET = '####' 8 9auth = twitter.oauth.OAuth(OAUTH_TOKEN, OAUTH_TOKEN_SECRET, CONSUMER_KEY, CONSUMER_SECRET) 10twitter_api = twitter.Twitter(auth=auth) 11 12world_woe_id = 1 13world_trends = twitter_api.trends.place(_id=world_woe_id) 14print world_trends
これを実行すると、
URLError Traceback (most recent call last) /home/ozakix/sources/tw/tw_test2.py in <module>() 10 11 world_woe_id = 1 ---> 12 us_trends = twitter_api.trends.place(_id=world_woe_id) 13 print us_trends /home/ozakix/Documents/code/Canopy_64bit/User/lib/python2.7/site-packages/twitter/api.pyc in __call__(self, **kwargs) 310 return self._handle_response_with_retry(req, uri, arg_data, _timeout) 311 else: --> 312 return self._handle_response(req, uri, arg_data, _timeout) 313 314 def _handle_response(self, req, uri, arg_data, _timeout=None): /home/ozakix/Documents/code/Canopy_64bit/User/lib/python2.7/site-packages/twitter/api.pyc in _handle_response(self, req, uri, arg_data, _timeout) 317 kwargs['timeout'] = _timeout 318 try: --> 319 handle = urllib_request.urlopen(req, **kwargs) 320 if handle.headers['Content-Type'] in ['image/jpeg', 'image/png']: 321 return handle /home/ozakix/Tools/Canopy/appdata/canopy-1.6.1.3253.rh5-x86_64/lib/python2.7/urllib2.pyc in urlopen(url, data, timeout, cafile, capath, cadefault, context) 152 else: 153 opener = _opener --> 154 return opener.open(url, data, timeout) 155 156 def install_opener(opener): /home/ozakix/Tools/Canopy/appdata/canopy-1.6.1.3253.rh5-x86_64/lib/python2.7/urllib2.pyc in open(self, fullurl, data, timeout) 429 req = meth(req) 430 --> 431 response = self._open(req, data) 432 433 # post-process response /home/ozakix/Tools/Canopy/appdata/canopy-1.6.1.3253.rh5-x86_64/lib/python2.7/urllib2.pyc in _open(self, req, data) 447 protocol = req.get_type() 448 result = self._call_chain(self.handle_open, protocol, protocol + --> 449 '_open', req) 450 if result: 451 return result /home/ozakix/Tools/Canopy/appdata/canopy-1.6.1.3253.rh5-x86_64/lib/python2.7/urllib2.pyc in _call_chain(self, chain, kind, meth_name, *args) 407 func = getattr(handler, meth_name) 408 --> 409 result = func(*args) 410 if result is not None: 411 return result /home/ozakix/Tools/Canopy/appdata/canopy-1.6.1.3253.rh5-x86_64/lib/python2.7/urllib2.pyc in https_open(self, req) 1238 def https_open(self, req): 1239 return self.do_open(httplib.HTTPSConnection, req, -> 1240 context=self._context) 1241 1242 https_request = AbstractHTTPHandler.do_request_ /home/ozakix/Tools/Canopy/appdata/canopy-1.6.1.3253.rh5-x86_64/lib/python2.7/urllib2.pyc in do_open(self, http_class, req, **http_conn_args) 1195 except socket.error, err: # XXX what error? 1196 h.close() -> 1197 raise URLError(err) 1198 else: 1199 try: URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)>
こうなります。。