2023. 5. 1. 21:34ㆍ프로젝트/주간책톡
주간책톡에서 알림톡으로 이번주의 책톡요약이 왔으면 그 링크를 텍스트로 저장해 넘겨주는 형식으로 계획했었다.
하지만 카카오톡을 건드리는게 조금 문제가 있었다.
https://namu.wiki/w/%EC%B9%B4%EC%B9%B4%EC%98%A4%ED%86%A1%20%EB%B4%87/%EC%A0%9C%EC%9E%91%EB%B2%95
카카오톡 봇/제작법 - 나무위키
이문서에서 공식봇, 비공식봇의 제작방법을 간략하게 설명한다. 따라서 더 자세히 알고싶다면 관련 커뮤니티 또는 다른 봇 문서를 참고하면 좋을 듯하다. 이 문서에서 설명한 방법대로 봇을 사
namu.wiki
대충 감을 잡기위해서 나무위키를 참고했는데 LOCO 프로토콜의 개념을 겉핥았고, 다른 언어들의 작동 로직도 대충 알게되었다.
https://github.com/WooilJeong/PyKakao
GitHub - WooilJeong/PyKakao: 카카오 API를 사용하기 위한 오픈소스 파이썬 라이브러리
카카오 API를 사용하기 위한 오픈소스 파이썬 라이브러리. Contribute to WooilJeong/PyKakao development by creating an account on GitHub.
github.com
그중 가장 관심있게 PyKakao 개인 비공식 라이브러리도 보고,
https://developers.kakao.com/docs/latest/ko/index
Kakao Developers
카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.
developers.kakao.com
카카오 디벨로퍼스에 등록도하고 카카오톡 API 공식 문서도 보고 고민을 한 결과.
지금은 토이프로젝트니 범죄, 상업적~ 그런 경고가 많고, 왜 그런 문제가 생겼는지를 보고 조금더 통신에 대한 공부를 더 한뒤에 건드려보기로 하고. 일단 카카오에서 공식적으로 제공하는 선에서 해결해보기로 변경했다.
(나중에 PyKakao 왜 이런 로직인지 좀더 자세히 보기 .)
그냥 카카오톡에 알림이오면 내가 직접 링크를 복사해서 붙여주기면 하면되는 간단한 작업이지만,
파이썬의 윈도우 화면 인식 라이브러리에 대해 연습할 겸
- 카카오톡 앱에서 대화를 내보내고 싶은 채팅방을 연 후, 상단 우측에 있는 '더보기' 버튼을 클릭
- '대화 내보내기'를 선택.
- 내보낼 범위를 선택한 후, 확인을 클릭.
- 내보낸 대화를 텍스트 파일로 저장.
- 텍스트 파일에서 링크를 슬라이싱.
- 링크를 주간책톡 크롤링 의 url 에 전송
화면 인식을 이용해 가라(pesudo?)로 일단 진행해보기로 변경하였다.
1,2,3,4 이 윈도우 컨트롤과 화면인식을 이용하게 될 부분이다.
import pyautogui
import pygetwindow as gw
# 카카오톡 창을 찾아 활성화.
kakao_window = gw.getWindowsWithTitle("카카오톡")[0]
if kakao_window:
print('1') # 찾으면 1 출력
kakao_window.activate()
if kakao_window.isMaximized == False:
kakao_window.Maximized()
PyGetWindowException: Error code from Windows: 0 - 작업을 완료했습니다.
계속 이오류가 떠서 끙끙 앓았다.
인식은 잘 되는데
if kakao_window.isMaximized == False:
kakao_window.maximize()
if kakao_window.isMinimized:
kakao_window.activate()
작업을 완료했습니다. 오류가 뜨는데 이미 활성화가 되어있거나, 다양한 이유에서 발생하는 오류인데. (나중에 정리)
순서대로 일단 1. 최대화 or 2. 최소화면 활성화
이런식으로 창으로 끄집어내(?) 야 함.
혹시나 안되면
import pygetwindow as gw
for window in gw.getAllTitles():
print(window)
getAllTitles() 로 한번 확인해서 확인해보는 것이 좋다.
이런식으로 카카오톡의 창이 활성화 되고, 최대화 한 것을 확인할 수 있다.
'프로젝트 > 주간책톡' 카테고리의 다른 글
주간책톡(부산 도서관) 크롤링 -5 페이지를 순회하며 크롤링 (0) | 2023.04.27 |
---|---|
주간책톡(부산 도서관) 크롤링 -4 표의 형태를 어떻게 api 로 전송하지?(tabulate, matplotlib) (0) | 2023.04.26 |
주간책톡(부산 도서관) 크롤링 -3 책 정보를 dataframe화 (pandas) (0) | 2023.04.25 |
주간책톡(부산 도서관) 크롤링 -2 XPath, CSS_SELECTOR (0) | 2023.04.24 |
주간책톡(부산 도서관) 크롤링 -1 CSS 선택자 (0) | 2023.04.24 |