{ "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위 도시에 걸맞는 혁신 정책 지속" [<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&mid=sec&oid=277&aid=0004537575&sid1=001&fbclid=IwAR20WIfFmTSLnzLXIxSS8t-h4C1yb-56R9bc3dbQXz6dwq1kC-0wbsDDk5Y 거장은 '장기·역발상' 투자…비인기종목에도 베팅할 줄 알아야 [<b>아시아경제</b> 문채석... \",\n", " 'bloggername': '나의 생각을 이야기하다...',\n", " 'bloggerlink': 'https://blog.naver.com/min_insa',\n", " 'postdate': '20190920'},\n", " {'title': '정책엔 한국 현실 안 담겼다" (<b>아시아경제</b>, 2020.01.06)',\n", " 'link': 'https://blog.naver.com/moonjinforum?Redirect=Log&logNo=221762405445',\n", " 'description': '<b>아시아경제</b>, 2020.01.06) 이덕환 에교협 공동대표 "대안 안될 태양광만 밀어붙여 탈석탄으로 미세먼지 저감? LNG 초미세먼지 늘려 모순"이덕환 서강대 화학·과학커뮤니케이션 명예교수가 3일 <b>아시아경제</b>와... ',\n", " 'bloggername': '문진(問津)으로 여는 탄소문화의 시대',\n", " 'bloggerlink': 'https://blog.naver.com/moonjinforum',\n", " 'postdate': '20200107'},\n", " {'title': '[<b>아시아경제</b>] 서형수 알서포트 대표 "내년 중국 공략 본격화"',\n", " 'link': 'https://blog.naver.com/rsupport?Redirect=Log&logNo=221719928915',\n", " 'description': '" 서형수 알서포트 대표(사진)는 27일 <b>아시아경제</b>와 한 인터뷰에서 아시아 시장에서 꾸준한 성장이 가능하다며 장기 성장에 대한 자신감을 내비쳤다. 2001년 설립된 알서포트는 클라우드 기반 원격지원 및... ',\n", " 'bloggername': '알서포트 공식 블로그',\n", " 'bloggerlink': 'https://blog.naver.com/rsupport',\n", " 'postdate': '20191127'},\n", " {'title': \"규제 위에 개발 호재...'삼.마. 청.용' 잡아라<<b>아시아경제</b>>\",\n", " 'link': 'https://blog.naver.com/az7286?Redirect=Log&logNo=221759506936',\n", " 'description': '사례 <<b>아시아경제</b>> 정부의 고강도 투기억제 정책으로 서울 강남권 집값 상승세가 주춤하는... 도시재생 뉴딜사업은 문재인 정부의 주요 국정 과제 중 하나로 낙후된 지역의 산업기반을 회복시켜 경제... ',\n", " 'bloggername': '즐거운♡부동산이야기',\n", " 'bloggerlink': 'https://blog.naver.com/az7286',\n", " 'postdate': '20200105'},\n", " {'title': \"책 한 끼]'늑대들'의 놀이터, 핀란드·에스토니아 - by <b>아시아경제</b>>\",\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위 도시에 걸맞는 혁신 정책 지속" [<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&mid=sec&oid=277&aid=0004537575&sid1=001&fbclid=IwAR20WIfFmTSLnzLXIxSS8t-h4C1yb-56R9bc3dbQXz6dwq1kC-0wbsDDk5Y 거장은 '장기·역발상' 투자…비인기종목에도 베팅할 줄 알아야 [<b>아시아경제</b> 문채석... \n", "\n", "Title : 정책엔 한국 현실 안 담겼다" (<b>아시아경제</b>, 2020.01.06)\n", "Link : https://blog.naver.com/moonjinforum?Redirect=Log&logNo=221762405445\n", "Description : <b>아시아경제</b>, 2020.01.06) 이덕환 에교협 공동대표 "대안 안될 태양광만 밀어붙여 탈석탄으로 미세먼지 저감? LNG 초미세먼지 늘려 모순"이덕환 서강대 화학·과학커뮤니케이션 명예교수가 3일 <b>아시아경제</b>와... \n", "\n", "Title : [<b>아시아경제</b>] 서형수 알서포트 대표 "내년 중국 공략 본격화"\n", "Link : https://blog.naver.com/rsupport?Redirect=Log&logNo=221719928915\n", "Description : " 서형수 알서포트 대표(사진)는 27일 <b>아시아경제</b>와 한 인터뷰에서 아시아 시장에서 꾸준한 성장이 가능하다며 장기 성장에 대한 자신감을 내비쳤다. 2001년 설립된 알서포트는 클라우드 기반 원격지원 및... \n", "\n", "Title : 규제 위에 개발 호재...'삼.마. 청.용' 잡아라<<b>아시아경제</b>>\n", "Link : https://blog.naver.com/az7286?Redirect=Log&logNo=221759506936\n", "Description : 사례 <<b>아시아경제</b>> 정부의 고강도 투기억제 정책으로 서울 강남권 집값 상승세가 주춤하는... 도시재생 뉴딜사업은 문재인 정부의 주요 국정 과제 중 하나로 낙후된 지역의 산업기반을 회복시켜 경제... \n", "\n", "Title : 책 한 끼]'늑대들'의 놀이터, 핀란드·에스토니아 - by <b>아시아경제</b>>\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 }