1. [파이썬] 셀레니움 selenium 웹 크롤링 시작
2. [파이썬] selenium 크롤링, 데이터 수집 ID, TAG, href 찾기
3. [깃허브] github에 vs code project 올리기, 업로드, Push
4. 티스토리 자동 글쓰기 API Authentication Code & Access Token 발급 (이전 포스팅)
5. [파이썬] 티스토리 API 이용 자동 글쓰기. 파이썬 request post (현재 글)
6. [파이썬] 뉴스 크롤링 티스토리에 자동 업로드하기 (마무리)
7. [파이썬] 윈도우 작업 스케줄러에서 파이썬 자동 실행시키기
8. [파이썬] mouse, keyboard 제어 & 티스토리 api 없이 글 쓰기 (414 제한 오류)
정말 별거 아닌? 프로젝트고 맘만 먹으면 하루만에 끝날 거 같은데 이걸 깨작깨작 하고 다시 블로그에 글쓰고 하면서 하느라 참 귀찮고 오래 걸린다.
게으른 나한테는 너무 힘든 일이다.
아무튼 각설하고 1번 글에서 셀레니움 개발환경 설정, 2번 글에서 데이터 수집, 3번 글에서 소스코드 형상관리, 4번 글에서 티스토리 API Access Token을 최종적으로 발급받았다.
이것을 사용하여 파이썬에서 티스토리에 글 쓰는 것을 테스트 해보려 한다.
먼저 저번 글에서도 말했지만 아래 공식 가이드에서 자세한 설명이 있긴 하다.
https://tistory.github.io/document-tistory-apis/
이런 기능들을 사용할 수 있으며 나는 여기서 글 작성을 해볼 것이다.
POST https://www.tistory.com/apis/post/write?
access_token={access-token}
&output={output-type}
&blogName={blog-name}
&title={title}
&content={content}
&visibility={visibility}
&category={category-id}
&published={published}
&slogan={slogan}
&tag={tag}
&acceptComment={acceptComment}
&password={password}
글 작성 API 이다. POST 방식으로 저렇게 보내면 된다.
하나씩 보면
access_token (필수) : 저번 글에서 발급받았다. 여기서 사용된다.
blogName (필수) : 블로그 이름 (ex https://hellodoor.tistory.com/) hellodoor 해당
title (필수) : 글 제목
visibility : 발행상태 (0: 비공개 - 기본값, 1: 보호, 3: 발행)
category : 카테고리 아이디 (기본값: 0) (ex https://hellodoor.tistory.com/143?category=867576)
원하는 카테고리에 발행된 게시글 하나를 들어가서 category= 뒤에 숫자를 적으면 된다.
published : 발행시간 (TIMESTAMP 이며 미래의 시간을 넣을 경우 예약. 기본값: 현재시간)
tag : 태그 (',' 로 구분)
acceptComment : 댓글 허용 (0, 1 - 기본값)
password : 보호글 비밀번호
이렇게 응답이 오면 성공이다.
import requests
# pip install requests
tistoryUrl = 'https://www.tistory.com/apis/post/write?'
parameters = {
'access_token': '토큰값~',
'blogName': 'hellodoor',
'title': '테스트 제목',
'content': '테스느 내용',
'visibility': '3',
'category': '867576',
'tag': '태그1, 태그2, 태그3',
'acceptComment': '1'
}
response = requests.post(tistoryUrl, params=parameters)
print(response.text)
파이썬에서 우선 이렇게 작성해 보았다.
우선 http 통신을 하기 위해서 requests를 import 해야 한다.
그냥 import 하면 no name? moudle requests? 이렇게 에러가 뜬다.
$ pip install requests 를 터미널에 입력해서 우선 설치해 준다.
그리고 나머지는 티스토리 API에 따라서 위와 같이 작성해 준다. 오타는 신경 끄고
토큰값, 블로그이름, 제목, 내용, 공개여부, 카테고리, 태그, 댓글 허용으로 파라미터를 json 타입으로 작성하고
post 타입으로 request를 보낸다. response 변수에 응답을 받고 프린트해보았다.
응답으로 200이 왔다. 성공한 것 같다. 블로그에 가서 확인해보자.
새로운 글이 작성되었다.
이제 이 파이썬을 배치파일에 올려서 작업스케줄러에 등록해놓으면 정기적으로 자동으로 실행시킬 수 있다.
저번에 올린 글들에서 뉴스제목, 링크를 크롤링한 데이터를 content 에 파라미터로 집어 넣고 실행시키면 끝날 것 같다.
거의 막바지 까지 온 것 같다.
그런데 여기서
응답이 <?xml version.... 이렇게 xml 형식으로 왔다.
나는 혹시 호옥시 저 응답데이터를 사용할 수도 있어서 데이터를 얻고 싶은데 xml로 오니 귀찮은 생각이 들었다.
그냥 뭐 split으로 자르고 어쩌고 하면 되기야 하겠지만 안해본 길을 알아가는 맛이 개발자의 참된 재미.. 뭐 아무튼
xml을 json 타입으로 변환하는 방법이 있는지 궁금해 졌고 찾아 보기로 했다.
그래서 다음 글에는 파이썬으로 xml -> json 타입 변환시키는 글을 올려야겠당.
'Project > Auto Upload' 카테고리의 다른 글
[파이썬] 윈도우 작업 스케줄러에서 파이썬 자동 실행 (bat 파일) (0) | 2021.09.24 |
---|---|
[파이썬] 뉴스 크롤링 티스토리에 자동 업로드하기 (마무리) (6) | 2021.09.24 |
티스토리 자동 글쓰기 API Authentication Code & Access Token 발급 (2) | 2021.09.11 |
[깃허브] github에 vs code project 올리기, 업로드, Push (0) | 2021.09.09 |
[파이썬] selenium 크롤링, 데이터 수집 ID, TAG, href 찾기 (4) | 2021.09.02 |
댓글