-
네이버 카페 메크로 만들기 - 2 (selenium -> rest api)etc 2022. 3. 18. 21:44
selenium -> rest api 이유
화면이 로딩되어야지만 dom을 읽어서 새로 생긴 글을 파악하고 새로고침 과정이 인터넷 속도나 컴퓨터에 따라 차이가 있다. 그리고 결정적으로 선착순으로 달아야 하는데 너무 느리다고 혼이 났다. 그래서 화면 로딩과 관련 없이 rest api로 새로 생기는 글을 catch해서 그 글에 comment를 달도록 변경해야 했다.
구현 준비
- 사용해야 할 rest api를 debugger를 통해서 찾아낸다.
- 사용해야 할 rest api에서 필요한 정보를 찾는다. (헤더나 data 형태)
- 네이버 로그인을 한다. (쿠키 정보를 읽어오기 위함)
- get post rest api를 주기적으로 호출하면서 새 글이 있는지 찾는다.
- 글의 id가 새로 추가됐는지 확인한다.
- 새글을 찾으면 그 게시글 id를 이용해서 comment를 쓴다.
구현
1. 로그인은 selenium으로 네이버 매크로 만들기 :: 개발 일상 일지 (tistory.com) 여기서 한 방식으로 구현했다.
2. 로그인 후 cookie를 읽어온다. (이는 naver open api를 사용해서 추후 구현할 예정이다.)
driver.manage().getCookies().then(function (cookies) { return resolve(cookies); });
3. 이제 rest api로 카페 새 게시글을 받아와야 한다. 웹에서 받아오려고 하니까 이미 카페 첫 화면에 들어갈 때 모든 정보를 다 읽어오는 것 처럼 보였다. api를 찾기가 너무 힘들었다. 그래서 모바일로 접속하면 가져오는 api가 있지 않을까 생각하면서 m.cafe.naver.com 로 들어갔다.
내가 원하는 카페의 게시판을 클릭했을 때 4. F12로 디버그창을 켠 뒤 위의 요청 URL부분의 API를 통해서 게시물 list를 알 수 있다. 이제 저 url을 이용해보자. 저건 cookie나 다른 추가 요청 데이터가 필요 없다.
5. postman으로 GET api를 날려서 확인해보자.
artistlist를 가져올 수 있다. 6. 이제 위 api로 article 정보를 가져온 뒤 비교하여 새로운 게시물 여부를 알아낼 수 있다.
7. 게시글을 쓸 때도 위와 같이 f12 디버그 창으로 어떤 API를 날리는지 확인해서 구현할 수 있다.
8. 이 때, Naver Login API를 쓰기 귀찮아서 그냥 selenium으로 로그인해서 가져온 쿠키를 사용하였다.
'etc' 카테고리의 다른 글
Multi Module과 MSA(micro service Architecture) (0) 2022.07.30 네이버 카페 메크로 만들기 - 3 (login selenium -> rest api) (0) 2022.03.20 selenium으로 네이버 매크로 만들기 (0) 2022.01.31 Apollo Studio 설정하기 (0) 2021.05.30 CORSAIR AX1200i Power Supply 고장 확인법 (0) 2021.04.10