코딩의 ㅋ도 모르는 비개발자의 소소한 SNS 자동화
저는 SNS 활동을 좋아하는데 싫어합니다… 응? 게시글을 올리는 건 좋아하는데, 팔로워들과 소통은 잘 못해요. 소통 잘하시는 분들 정말 리스펙 합니다.
하지만 세상이 늘 그러하듯 인생은 기브엔 테이크인고, 관심을 받으려면 관심을 줘야 쓰죠. 그래서 만들어보고 있습니다! SNS 자동 소통봇! 제가 작년 이맘때쯤 코딩의 ㅋ도 모를 때 인스타 소통봇을 만든 적이 있었는데요 - 당시보다 진화된 서비스를 구현 중입니다.
참고로 모든 과정은 GPT-4o가 코드를 짜줬음을 서두에 밝힙니다.
파이썬 코드로 구현 → 코드를 실행하면
자동으로 로그인이 됨
단 코드 돌릴 때마다 로그인을 하면 비정상적 활동으로 계정이 막힐 수 있으므로 이를 피할 수 있는 장치 마련
1) 로그인 세션을 유지해서 매번 로그인하지 않게 하기
2) 각 단계 별로 랜덤 한 시간 차이를 두고 클릭 등을 하게 해서 자동봇 티를 덜 내게 하기
최상단에 뜨는 다른 유저의 포스팅을 크롤링
한글 답변을 잘한다는 Cluade API를 활용해서 자연스러운 답변을 생성 생성된 답변을 보고 마음에 들면 Y, 아니면 N을 누름 N 누르면 다른 답변이 생성됨
Y를 누르면 - 이후 좋아요 클릭, 위에서 생성된 답변이 자동으로 달림
원할 때까지 각 포스트에 위 과정이 반복됨
→ 하여 약간 음에 영역에 있긴 하지만, 결과적으로는 댓글을 하나하나 검수해서 달게끔 하는 나름 인간적인 서비스로 구현할 예정입니다. 세부 과정은 아래에서 계속!
잠시 제 스레드 홍보하고 가실게요?! 스레드 링크
selenium이라는 걸 이용하면 - 웹 브라우저를 제어해서 자동으로 동작하게 할 수 있습니다. 저도 정확한 개념은 잘 모르지만… 웹페이지를 띄워서 - 로그인 박스를 찾아서 계정과 비밀번호를 입력하고 ‘로그인’ 버튼을 자동으로 누르게 구현할 수 있습니다.
그러기 위해서는 코드에게 → 로그인 박스 위치가 어디고, 비밀번호 넣는 박스 위치가 어딘지 알려줘야겠죠? F12 개발자도구를 누르면 그게 어딘지 알 수 있습니다. xPath라고 약속된 위치를 알려주면 됩니다.
개발자 도구를 켜고 ctrl + shift + c를 누른 후, 마우스 오버해서 영역을 지정하면 - 해당 영역의 class? path를 알려줍니다. 일단 잘 모르면 저 화살표 부분을 복사해서 chatgpt한테 주고 - 이게 ID를 넣는 부분인데, 코드 짜줘라 하면 짜줍니다.
마찬가지로 비밀번호의 영역, 로그인 버튼의 영역을 하나씩 따서 - chatgpt에게 주면 이제 프로그램이 어디에 ID, 비번을 입력하고, 입력 후 로그인 버튼을 눌러야 하는지 알게 됩니다.
이런 자동 로그인 코드 및 실행을 계속 돌리다 보면 계정이 막힐 수 있습니다. 이벤트 사이에 랜덤 하게 딜레이를 주는 코드를 짜달라고 하면 간단히 만들어줍니다.
그리고 한 번 로그인하면 세션이 유지되는 코드를 짜달라고 합니다. 이 부분은 조금 애를 먹었습니다. ChatGPT에게 무한 질문으로 해결…
로그인 직후에 바로 보이는 상위 3개 포스트를 크롤링해 달라고 했습니다. 이때도 앞서 ID, 비밀번호, 로그인 버튼 경로를 알려준 xPath를 지정해줘야 합니다.
마찬가지로 저 영역을 잡고 복사해서 ChatGPT에게 주고 - 저 부분 텍스트를 크롤링할 거니까 코드를 짜달라고 하면 짜줍니다. 물론 역시 삽질의 과정은 있었습니다.
코드를 짜고 실행하면 > 터미널에 이렇게 포스트 본문이 크롤링되는 걸 확인할 수 있습니다. (나이스)
앞서 언급했듯, 한국어에 능한 Claude Opus API를 활용해서 댓글을 생성해 보겠습니다. 이때 중요한 것은 예시를 주는 거쥬. 저는 3개 정도 예시 포스트에 - 각각 댓글을 프롬프트로 줬습니다.
참고로 Claude API를 호출하는 코드를 짜달라고 하면 지피티가 잘 못 짜줍니다. API 호출 방식이 조금씩 변경되어서 그럴 텐데요, 저는 Claude 개발자 공식 문서 페이지에 들어가서 - 활용 예제를 복사해서 ChatGPT에게 주고, 활용예제와 유사한 형태로 짜달라고 했습니다. (이렇게 하기까지 역시 많은 삽질이 있었습니다)
그리고 결과는? 살짝 오글토글하지만 그래도 AI 느낌이 덜 나는 댓글이 생성되었습니다.
댓글 생성 후 마음에 드는지 묻고 → 아니라면 다시 생성해 주는 코드를 추가했습니다. 이건 매우 잘 짜주더군요 지피티 녀석
이제 위에서 생성된 댓글을 해당 포스트에 자동으로 달고, 좋아요 누르고 - 다음 포스트에도 동일한 작업을 반복하도록 코드를 계속 이어서 짜야하는데 생각보다 진도가 잘 나가지 않고 무한 오류의 늪에 빠져 동력을 좀 잃고 있습니다. 위에 게시글로 설명한 내용도 제가 간단히만 써서 그렇지 거의 5시간 정도 코딩에 소요한 것 같습니다. ㅋㅋㅋㅋ 휴
하지만 계속 삽질하다 보면 언젠가 성공하리라는 믿어 의심치 않습니다 하핫
그 와중에 6/18 - 무려 어제 Threads에서 API를 공개했다고 하네요…? API 비용도 무료고? ㅋㅋㅋ 지금까지 삽질하며 코드를 짜왔던 세월이 무상해지는 발표였으나… 비개발자이기 때문에 개발자 문서를 보고 잘 이해할 자신도 없는 건 안 비밀 �
이렇게 마지막으로 스레드 홍보 한 번 더 하며 이번 글은 마무리합니다. 다음에는 성공썰로 돌아올게요.
� 누리 스레드 구경 가기
함께 읽으면 좋은 글