티스토리 올린 글이 많아지면 내가 무슨 글을 올렸는지 헷갈리기도 하고, 어떤 글들이 있는지 보고 싶은 욕구가 생기게 됩니다. 그래서 오늘은 티스토리 오픈 API를 활용하여 글목록을 가져오고자 합니다. 오픈 API를 활용하기 위해서는 인증 코드를 받아야 합니다.

 

티스토리API 사이트에 방문하면 글목록을 가져오는 API 외에도 쓰기, 수정하기, 읽기 등 다양한 API들의 내용을 확인할 수 있습니다.

- 티스토리API 사이트: https://tistory.github.io/document-tistory-apis/

 

이중에 최근 게시글 목록 API를 사용하면 됩니다. 중간에 access_token이 들어간 url을 요청하면, 글목록을 리턴해 줍니다. 보낼 url은 아래와 같습니다.

* URL
 - https://www.tistory.com/apis/post/list?access_token=(인증코드)&targetUrl=tariat&count=30&sort=id&output=json&page=(숫자)

 

https부터 list?까지는 글목록을 가져오기 위한 공통적인 부분입니다. 그 이후에 값에 대해서 하나씩 살펴보겠습니다.

 

- access_token: 인증코드를 입력하여, 블로그 주인임을 증명하는 부분입니다
-targetUrl: 인당 블로그를 5개까지 개설할 수 있기 때문에 어떤 블로그인지 지정이 필요합니다. 티스토리 url은 XXX.tistory.com으로 이루어져 있는데, 이 앞의 XXX까지만 적어주며 됩니다.
- count: 가져오는 글목록의 개수를 이야기합니다. 최대 30개입니다.
- sort: 글의 정렬기준을 이야기한다. id순으로 정렬해서 가져왔습니다.
- output: 글목록을 가져오는 자료 형태를 지정하는 부분입니다. json과 xml 2가지가 있는데, json으로 지정했습니다.
- page: 몇 페이지의 목록을 가져올지 지정하는 부분입니다.

 

전체 목록을 다 가져오는 옵션이 없기 때문에, page를 이용하여 1페이지씩 가져와서 데이터를 합치는 작업을 했습니다.

 

# 글목록 가져오기
total_post=pd.DataFrame()

for i in range(1,100):
	url2="https://www.tistory.com/apis/post/list?access_token="+access_token+"&targetUrl=tariat&count=30&sort=id&output=json&page="+str(i)

	result_data = urlopen(url2)
	result = result_data.read()
	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파일 형태로 저장하였습니다. csv파일을 열면 글목록이 저장된 것을 확인할 수 있습니다.

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기