티스토리 Open API 를 사용해 티스토리 블로그 글을 csv 파일로 저장하는 방법을 설명한다. API란 “API(Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스)는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스"를 뜻한다. 그냥 상대방의 시스템을 편하게 사용할 수 있게 만든 함수라고 생각하면 된다.
일단 파이선을 설치한다. 파이선 설치 사이트에서 윈도우용 파일을 받아 설치한다.
파이선 프로그램을 개발할 수 있는 통합개발환경을 제공하는 파이참을 설치한다. 파이참 다운로드 사이트로 가서 Community 버전을 설치한다.
사용자의 앱등록을 하고, 클라이언트 ID와 Secret Key 를 얻어야 한다. 오려운 일이니 아래 사이트로 이동하여 화면을 채운다. 티스토리 open API 등록 사이트
아래와 같이 앱등록을 한다.
등록을 하고 앱관리 화면으로 이동해 설정화면에 보면 아래 모자이크 저리한 App ID 와 Secret Key가 필요한 자료다.
우선 아래와 같은 코드를 파이참에서 실행한다. pip 명령을 사용해서 import 할 패키지를 설치해야 한다.
# 티스토리 오픈API 인증
#-*- coding:utf-8 -*-
import webbrowser
import pandas as pd
import urllib.request
import json
# 1. access_token이 있는 주소를 받는다
url = "https://www.tistory.com/oauth/authorize?client_id=본인이 발급받은 Client ID&redirect_uri=https://fishpoint.tistory.com/&response_type=token"
webbrowser.open(url)
# 2. 회신받은 주소를 통해 access_token을 추출한다
result = input("input token")
temp = result.split("access_token=")[1]
access_token = temp.split("&state")[0]
print(access_token)
여기까지 하면 access token 을 브라우저 화면의 주소줄로 받는다. 아래 이미지 참고.
파이참 실행화면에 input token: 글자 뒤에 사이트 주소를 복사해 준다. 복사해 넣어줄 부분은 이부분이다. access_token=7cbb##################d3e85&state=
그러면 액세스 토큰을 받아 csv 파일로 글목록이 저장된다. 아래가 전체코드이다.
#-*- coding:utf-8 -*-
# 티스토리 오픈API 인증
import webbrowser
import pandas as pd
import urllib.request
import json
# 1. access_token이 있는 주소를 받는다
url = "https://www.tistory.com/oauth/authorize?client_id=################&redirect_uri=https://fishpoint.tistory.com/&response_type=token"
webbrowser.open(url)
# 2. 회신받은 주소를 통해 access_token을 추출한다
result = input("input token")
temp = result.split("access_token=")[1]
access_token = temp.split("&state")[0]
print(access_token)
# 받은메시지 예
# https://fishpoint.tistory.com/#access_token=######################&state=
# 글목록 가져오기
total_post = pd.DataFrame()
for i in range(1, 100):
url2 = "https://www.tistory.com/apis/post/list?access_token=" + access_token + "&targetUrl=fishpoint&count=30&sort=id&output=json&page=" + str(
i)
#webbrowser.open(url2)
#result_data = urlopen(url2)
result_data = urllib.request.urlopen(url2)
result = result_data.read()
print(result)
data = json.loads(result)
try:
posts = data["tistory"]["item"]["posts"]
posts = pd.DataFrame(posts)
total_post = pd.concat([total_post, posts])
except Exception as e:
print(i)
print(data)
print(e)
break
total_post.reset_index(drop=True)
total_post.to_csv("toatl_post.csv")
여기서 중요한게 csv 파일을 엑셀에서 열면 유니코드라서 한글이 깨져나오는데 아래 사이트를 참고해서 열어야 제대로 된 파일을 얻을 수 있다.
참고
티스토리API를 활용하여 글목록 가져오기 (오픈API, 파이썬 활용)
MS 엑셀(Excel)에서 UTF-8 로 된 csv 파일 가져오기
'개발자' 카테고리의 다른 글
공기청정기 팬 cross flow fan 연구 (0) | 2020.01.28 |
---|---|
Iceball Maker 원형 틀 제작은 또 Fail (0) | 2020.01.16 |
모두를 위한 머신러닝/딥러닝 강의 (0) | 2020.01.16 |
AI 온라인 강의 사이트 모음 (0) | 2020.01.15 |
C Programming Language 문법 설명 링크 (0) | 2019.12.10 |
브라우저 표 스타일 자료 쉽게 한글 표로 변환 (0) | 2019.11.04 |
atom 초기화 방법, atom 에디터 환경 초기화 (1) | 2019.10.29 |
Python으로 웹 스크래퍼 만들기 1 (0) | 2019.10.25 |
더욱 좋은 정보를 제공하겠습니다.~ ^^