{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 데이터를 API로 가져와 본다 - 네이버"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "먼저 다음과 같은 절차로 API 사용을 신청/등록한다.<br>\n",
    "\n",
    "1. 먼저 다음 사이트에 접속한다: https://developers.naver.com/main/\n",
    "2. 사이트에 가입하고 로그인 한다.\n",
    "3. 상단 탭에서: Application => 애플리케이션 등록으로 들어간다\n",
    "4. 이용약관에 동의하고 확인한다.\n",
    "5. \"활용신청\" 버튼을 클릭하고 신청 양식을 작성한다.\n",
    "6. 휴대폰 인증 절차를 거치고 넘어간다 (MS Explorer 사용).\n",
    "7. 애플리케이션을 등록한다.\n",
    "   - 애플리케이션 이름은 \"Test\"로.\n",
    "   - 사용 API는 \"검색\"으로.(검색말고도 다른거 사용할 수 있음)\n",
    "   - 비로그인 오픈 API 서비스환경은 \"Android 설정\"으로.\n",
    "   - 앤드로이드 앱 패키지 이름은 \"com.test\"로.\n",
    "6. \"등록\" 버튼을 클릭해서 등록 완료. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "등록이 완료된 후 API 토큰과 API 시크릿을 받아 두어야만 한다. <br>\n",
    " \n",
    "1. API 토큰은 바로 \"Client ID\"이고,\n",
    "2. API 시크릿은 \"Client Secret\"이다. 아래 [보기] 버튼을 눌러서 볼수 있다.\n",
    "3. 이들을 복사해 놓는다.\n",
    "4. 이 내용을 다시 보려면 상단 탭에서: Application => 내 애플리케이션 => 왼쪽 사이드 메뉴 상단에서 애플리케이션 이름 \"Test\"를 클릭한다."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1. 키워드 사용 네이버 검색"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import requests as rq\n",
    "import json"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "api_token = \"MGy6CWcNo2BB6nJgmhTm\"      # 각자 본인의 것으로 대체한다.\n",
    "api_secret = \"p15jEaoZY4\"               # 각자 본인의 것으로 대체한다."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 검색 키워드.\n",
    "my_keyword = \"아시아경제\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'https://openapi.naver.com/v1/search/blog?query=아시아경제'"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "url = \"https://openapi.naver.com/v1/search/blog?query=\" + my_keyword       \n",
    "url"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 헤더에 나의 api_token과 api_secret을 태워서 보낸다. \n",
    "my_headers = {\"X-Naver-Client-Id\":api_token, \"X-Naver-Client-Secret\":api_secret}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Status = 200\n"
     ]
    }
   ],
   "source": [
    "# 데이터를 요청하고 상태를 본다.\n",
    "res = rq.get(url, headers=my_headers)        #url과 헤더 가져옴\n",
    "print(\"Status = \" + str(res.status_code))    #status = 200으로 출력해보기 위해 문자결합"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 파싱하기"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'lastBuildDate': 'Sun, 19 Jan 2020 20:09:00 +0900',\n",
       " 'total': 1152736,\n",
       " 'start': 1,\n",
       " 'display': 10,\n",
       " 'items': [{'title': '쉐보레 트랙스로 <b>아시아경제</b> 연비왕대회 참가했어요',\n",
       "   'link': 'https://blog.naver.com/uni1978?Redirect=Log&logNo=221710295145',\n",
       "   'description': '지난번에 <b>아시아경제</b> 연비왕대회에 참가 신청을 했다는 글을 썼어요. 쉐보레 트랙스로 <b>아시아경제</b> 주관 연비왕대회 참가 신청 완료 이전 글에서 쓴 것과 같이 쉐보레 트랙스를 운전하기 시작한지 이제... ',\n",
       "   'bloggername': '호기심 만발한 밤송씨',\n",
       "   'bloggerlink': 'https://blog.naver.com/uni1978',\n",
       "   'postdate': '20191117'},\n",
       "  {'title': '[관악구 국회의원 김성식] [<b>아시아경제</b>]김성식, 선거법 표결에... ',\n",
       "   'link': 'https://blog.naver.com/okkimss?Redirect=Log&logNo=221753844092',\n",
       "   'description': '“연동형의 원칙 짓밟혀…아닌 것은 아닌 것” [이미지출처=연합뉴스] [<b>아시아경제</b> 임춘한 기자]... 김 의원은 “정치, 경제, 사회, 교육 등 각 분야별 제도와 시스템을 개선하여 저성장, 양극화, 외교안보적... ',\n",
       "   'bloggername': '관악구 국회의원 김성식의 꿈.일.사람이야기',\n",
       "   'bloggerlink': 'https://blog.naver.com/okkimss',\n",
       "   'postdate': '20191230'},\n",
       "  {'title': '[연합뉴스]와 [<b>아시아경제</b>] 기사 중에서',\n",
       "   'link': 'https://blog.naver.com/s3939?Redirect=Log&logNo=221761941461',\n",
       "   'description': '[<b>아시아경제</b>] 기사 중에서 애플, 스마트폰 영업이익 66% 쓸어담아..삼성은 17% 한진주 입력 2019.12.20. 09... 증가 [<b>아시아경제</b> 한진주 기자] 애플이 3분기 글로벌 스마트폰 판매 이익의 66%를 쓸어담은 것으로... ',\n",
       "   'bloggername': '철인(s3939)',\n",
       "   'bloggerlink': 'https://blog.naver.com/s3939',\n",
       "   'postdate': '20200106'},\n",
       "  {'title': '{제8회 <b>아시아경제</b> 직장인밴드 대회}시상식',\n",
       "   'link': 'https://blog.naver.com/battlcar?Redirect=Log&logNo=221284829125',\n",
       "   'description': '지난 2017년 8월17일 오후 5시부터 저녁 8시까지 여의도 물빛무대에서 열린 {제8회 <b>아시아경제</b>... 사이에 <b>아시아경제</b> 심사위원들의 심사가 어느새 끝나 있었다. 그리고 드디어 대망의 피날레를 장식하는... ',\n",
       "   'bloggername': '푸른 매화',\n",
       "   'bloggerlink': 'https://blog.naver.com/battlcar',\n",
       "   'postdate': '20180526'},\n",
       "  {'title': '전국 1위 도시에 걸맞는 혁신 정책 지속&quot; [<b>아시아경제</b>]',\n",
       "   'link': 'https://blog.naver.com/cwonoh?Redirect=Log&logNo=221772437021',\n",
       "   'description': '성동구청장은 <b>아시아경제</b>와 가진 인터뷰에서 ‘더불어 행복한 스마트 포용도시’를 속도감 있게... 정원오 성동구청장은 아시아 news.naver.com #정원오 #성동구 #성동구청장 #포용도시 #스마트시티 #스마트포용도시',\n",
       "   'bloggername': '정원오 성동구청장',\n",
       "   'bloggerlink': 'https://blog.naver.com/cwonoh',\n",
       "   'postdate': '20200115'},\n",
       "  {'title': '베팅할 줄 알아야 (출처: <b>아시아경제</b> / 2019.09.17)',\n",
       "   'link': 'https://blog.naver.com/min_insa?Redirect=Log&logNo=221653959614',\n",
       "   'description': \"https://news.naver.com/main/read.nhn?mode=LSD&amp;mid=sec&amp;oid=277&amp;aid=0004537575&amp;sid1=001&amp;fbclid=IwAR20WIfFmTSLnzLXIxSS8t-h4C1yb-56R9bc3dbQXz6dwq1kC-0wbsDDk5Y 거장은 '장기·역발상' 투자…비인기종목에도 베팅할 줄 알아야 [<b>아시아경제</b> 문채석... \",\n",
       "   'bloggername': '나의 생각을 이야기하다...',\n",
       "   'bloggerlink': 'https://blog.naver.com/min_insa',\n",
       "   'postdate': '20190920'},\n",
       "  {'title': '정책엔 한국 현실 안 담겼다&quot; (<b>아시아경제</b>, 2020.01.06)',\n",
       "   'link': 'https://blog.naver.com/moonjinforum?Redirect=Log&logNo=221762405445',\n",
       "   'description': '<b>아시아경제</b>, 2020.01.06) 이덕환 에교협 공동대표 &quot;대안 안될 태양광만 밀어붙여 탈석탄으로 미세먼지 저감? LNG 초미세먼지 늘려 모순&quot;이덕환 서강대 화학·과학커뮤니케이션 명예교수가 3일 <b>아시아경제</b>와... ',\n",
       "   'bloggername': '문진(問津)으로 여는 탄소문화의 시대',\n",
       "   'bloggerlink': 'https://blog.naver.com/moonjinforum',\n",
       "   'postdate': '20200107'},\n",
       "  {'title': '[<b>아시아경제</b>] 서형수 알서포트 대표 &quot;내년 중국 공략 본격화&quot;',\n",
       "   'link': 'https://blog.naver.com/rsupport?Redirect=Log&logNo=221719928915',\n",
       "   'description': '&quot; 서형수 알서포트 대표(사진)는 27일 <b>아시아경제</b>와 한 인터뷰에서 아시아 시장에서 꾸준한 성장이 가능하다며 장기 성장에 대한 자신감을 내비쳤다. 2001년 설립된 알서포트는 클라우드 기반 원격지원 및... ',\n",
       "   'bloggername': '알서포트 공식 블로그',\n",
       "   'bloggerlink': 'https://blog.naver.com/rsupport',\n",
       "   'postdate': '20191127'},\n",
       "  {'title': \"규제 위에 개발 호재...'삼.마. 청.용' 잡아라&lt;<b>아시아경제</b>&gt;\",\n",
       "   'link': 'https://blog.naver.com/az7286?Redirect=Log&logNo=221759506936',\n",
       "   'description': '사례 &lt;<b>아시아경제</b>&gt; 정부의 고강도 투기억제 정책으로 서울 강남권 집값 상승세가 주춤하는... 도시재생 뉴딜사업은 문재인 정부의 주요 국정 과제 중 하나로 낙후된 지역의 산업기반을 회복시켜 경제... ',\n",
       "   'bloggername': '즐거운♡부동산이야기',\n",
       "   'bloggerlink': 'https://blog.naver.com/az7286',\n",
       "   'postdate': '20200105'},\n",
       "  {'title': \"책 한 끼]'늑대들'의 놀이터, 핀란드·에스토니아 - by <b>아시아경제</b>&gt;\",\n",
       "   'link': 'https://blog.naver.com/daeshy1?Redirect=Log&logNo=221775220963',\n",
       "   'description': '노키아가 2011년 핀란드 <b>경제</b>에 미친 영향은 말 그대로 막대하다. 국내총생산(GDP)의 4%를 책임지고 수출의 25%를 짊어졌다. 2013년 노키아가 망하자 핀란드의 <b>경제</b>성장률은 마이너스 0.76%로 곤두박질쳤다.... ',\n",
       "   'bloggername': '대탐소실님의 블로그',\n",
       "   'bloggerlink': 'https://blog.naver.com/daeshy1',\n",
       "   'postdate': '20200117'}]}"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# JSON으로 내려받은 정보를 parsing한다.\n",
    "my_json = json.loads(res.text)  #블로그에서 가져온다 => 아시아경제 제목으로 블로그검색한 결과나옴\n",
    "my_json"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "dict_keys(['lastBuildDate', 'total', 'start', 'display', 'items'])"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Key 값 출력.\n",
    "my_json.keys()   #우리는 아이템에 관심"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Title : 쉐보레 트랙스로 <b>아시아경제</b> 연비왕대회 참가했어요\n",
      "Link : https://blog.naver.com/uni1978?Redirect=Log&logNo=221710295145\n",
      "Description : 지난번에 <b>아시아경제</b> 연비왕대회에 참가 신청을 했다는 글을 썼어요. 쉐보레 트랙스로 <b>아시아경제</b> 주관 연비왕대회 참가 신청 완료 이전 글에서 쓴 것과 같이 쉐보레 트랙스를 운전하기 시작한지 이제... \n",
      "\n",
      "Title : [관악구 국회의원 김성식] [<b>아시아경제</b>]김성식, 선거법 표결에... \n",
      "Link : https://blog.naver.com/okkimss?Redirect=Log&logNo=221753844092\n",
      "Description : “연동형의 원칙 짓밟혀…아닌 것은 아닌 것” [이미지출처=연합뉴스] [<b>아시아경제</b> 임춘한 기자]... 김 의원은 “정치, 경제, 사회, 교육 등 각 분야별 제도와 시스템을 개선하여 저성장, 양극화, 외교안보적... \n",
      "\n",
      "Title : [연합뉴스]와 [<b>아시아경제</b>] 기사 중에서\n",
      "Link : https://blog.naver.com/s3939?Redirect=Log&logNo=221761941461\n",
      "Description : [<b>아시아경제</b>] 기사 중에서 애플, 스마트폰 영업이익 66% 쓸어담아..삼성은 17% 한진주 입력 2019.12.20. 09... 증가 [<b>아시아경제</b> 한진주 기자] 애플이 3분기 글로벌 스마트폰 판매 이익의 66%를 쓸어담은 것으로... \n",
      "\n",
      "Title : {제8회 <b>아시아경제</b> 직장인밴드 대회}시상식\n",
      "Link : https://blog.naver.com/battlcar?Redirect=Log&logNo=221284829125\n",
      "Description : 지난 2017년 8월17일 오후 5시부터 저녁 8시까지 여의도 물빛무대에서 열린 {제8회 <b>아시아경제</b>... 사이에 <b>아시아경제</b> 심사위원들의 심사가 어느새 끝나 있었다. 그리고 드디어 대망의 피날레를 장식하는... \n",
      "\n",
      "Title : 전국 1위 도시에 걸맞는 혁신 정책 지속&quot; [<b>아시아경제</b>]\n",
      "Link : https://blog.naver.com/cwonoh?Redirect=Log&logNo=221772437021\n",
      "Description : 성동구청장은 <b>아시아경제</b>와 가진 인터뷰에서 ‘더불어 행복한 스마트 포용도시’를 속도감 있게... 정원오 성동구청장은 아시아 news.naver.com #정원오 #성동구 #성동구청장 #포용도시 #스마트시티 #스마트포용도시\n",
      "\n",
      "Title : 베팅할 줄 알아야 (출처: <b>아시아경제</b> / 2019.09.17)\n",
      "Link : https://blog.naver.com/min_insa?Redirect=Log&logNo=221653959614\n",
      "Description : https://news.naver.com/main/read.nhn?mode=LSD&amp;mid=sec&amp;oid=277&amp;aid=0004537575&amp;sid1=001&amp;fbclid=IwAR20WIfFmTSLnzLXIxSS8t-h4C1yb-56R9bc3dbQXz6dwq1kC-0wbsDDk5Y 거장은 '장기·역발상' 투자…비인기종목에도 베팅할 줄 알아야 [<b>아시아경제</b> 문채석... \n",
      "\n",
      "Title : 정책엔 한국 현실 안 담겼다&quot; (<b>아시아경제</b>, 2020.01.06)\n",
      "Link : https://blog.naver.com/moonjinforum?Redirect=Log&logNo=221762405445\n",
      "Description : <b>아시아경제</b>, 2020.01.06) 이덕환 에교협 공동대표 &quot;대안 안될 태양광만 밀어붙여 탈석탄으로 미세먼지 저감? LNG 초미세먼지 늘려 모순&quot;이덕환 서강대 화학·과학커뮤니케이션 명예교수가 3일 <b>아시아경제</b>와... \n",
      "\n",
      "Title : [<b>아시아경제</b>] 서형수 알서포트 대표 &quot;내년 중국 공략 본격화&quot;\n",
      "Link : https://blog.naver.com/rsupport?Redirect=Log&logNo=221719928915\n",
      "Description : &quot; 서형수 알서포트 대표(사진)는 27일 <b>아시아경제</b>와 한 인터뷰에서 아시아 시장에서 꾸준한 성장이 가능하다며 장기 성장에 대한 자신감을 내비쳤다. 2001년 설립된 알서포트는 클라우드 기반 원격지원 및... \n",
      "\n",
      "Title : 규제 위에 개발 호재...'삼.마. 청.용' 잡아라&lt;<b>아시아경제</b>&gt;\n",
      "Link : https://blog.naver.com/az7286?Redirect=Log&logNo=221759506936\n",
      "Description : 사례 &lt;<b>아시아경제</b>&gt; 정부의 고강도 투기억제 정책으로 서울 강남권 집값 상승세가 주춤하는... 도시재생 뉴딜사업은 문재인 정부의 주요 국정 과제 중 하나로 낙후된 지역의 산업기반을 회복시켜 경제... \n",
      "\n",
      "Title : 책 한 끼]'늑대들'의 놀이터, 핀란드·에스토니아 - by <b>아시아경제</b>&gt;\n",
      "Link : https://blog.naver.com/daeshy1?Redirect=Log&logNo=221775220963\n",
      "Description : 노키아가 2011년 핀란드 <b>경제</b>에 미친 영향은 말 그대로 막대하다. 국내총생산(GDP)의 4%를 책임지고 수출의 25%를 짊어졌다. 2013년 노키아가 망하자 핀란드의 <b>경제</b>성장률은 마이너스 0.76%로 곤두박질쳤다.... \n",
      "\n"
     ]
    }
   ],
   "source": [
    "# 검색 결과 아이템들을 출력해 본다.   \n",
    "for x in my_json['items']:              #아이템의 타이틀키,링크키,디스크립키\n",
    "    print(\"Title : \" + x.get('title'))  #Title : 제목형태로 나오게 문자열 결합\n",
    "    print(\"Link : \" + x.get('link'))\n",
    "    print(\"Description : \" + x.get('description'))\n",
    "    print()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}