Instagram DM automation

이후띵·2022년 7월 12일
0

차세대

목록 보기
2/2

기간:

  • 2022.06.27 ~ 2022.07.08 (약 2주)

목표:

  • 인스타그램에게 정지당하지 않고 DM 보내기 (하루 200개 정도)

팀원:

  • Jerry Lee (1인 프로젝트)

기술 스택:

  • python, Django, Selenium (Server)
  • Javascript, React, nodeJS (Chrome Extension)

구현 사항:

특이사항) 인스타그램에서 봇의 움직임을 잘 캐치하기 때문에 모든 행동을 Random하게 진행한다.

예) 스크롤 - 스크롤을 몇 번 할지, 한 번 스크롤에 얼마나 내릴 것인 지, 스크롤 당 시간 간격을 얼마나 줄 지 등...

  1. 로그인
    • 인스타ID로 로그인 / 페이스 북ID로 로그인
  1. 인스타 서핑
    • 메인루틴 (스크롤 내리기, 포스트 선택, 탐험하기(나침반버튼), 검색(해시태그, 채널)
    • 해시태그 루틴 (스크롤 내리기, 포스트 선택, 메인으로 돌아가기, 탐험하기)
    • 포스트 루틴 (좋아요, 이미지 넘기기, 댓글 스크롤 내리기, 댓글남기기, 메인으로 돌아가기)
    • DM 루틴(아이디검색 -> (팔로우) -> 메시지보내기 -> DM 보내기)
  1. Custom Command
    • $ python manage.py command 1000 입력 시 1000번의 Random Activity 실행
    • 평상시에는 2.인스타 서핑을 하다가 미션(DM보내기)이 들어오면 미션을 진행한다.
    • 미션(DM)을 4~6분의 주기를 두고 진행하도록 구현했다.(안하면 정지됨)
    • 아이디를 4개를 만들고 각 아이디당 50개 정도씩만 보내도록 진행하고, 50개 다쓰면 다른 아이디로 로그인하도록 했다.
    • 혹시 아이디가 맛탱이가 가면, 다른 아이디로 로그인하도록 했다.
    • 시간대별 DM 보낼 interval을 정했다.
      - 08-18(5~7분), 18~24(6~8분), 00~08(안보내고 10분간격으로 08시 되었나 확인)
  1. Decorator
    • 파이썬의 decorator기능을 사용하여 로그를 자동으로 남기도록 구현.
  1. Chrome Extension
    • 미션을 부여하기 위해서 어떤 방법을 줄까 하다가, 간단하게 크롬익스텐션을 구현해보았다.

어려웠던 점

  • 대부분 처음 써보는 스택이라 쉽지는 않았다.
  • Selenium은 버전 차이로 인해 안되는 코드들이 많았다. (이것 때문에 생각보다 시간투자 많이 함..)
  • "Random Activity를 하다가, DM 미션이 들어와있으면 미션을 진행한다"
    - 이 부분을 어떻게 해결하지? 라는 고민을 많이 했다.
    - Redis, Celery 등을 조사해봤지만 해결할 수 없었다.
    - Django 모델을 만들어서 DM미션을 넣고 해당 모델에 저장되어있는 DM이 있는지 확인하는 방식으로 해결했다.

잘 저장 된다.

아쉬운 점

  • 프로젝트 구조나, 코드를 남들이 알아보기 쉽게 써야하는데, 아무래도 아무도 못 알아볼 것 같다.
  • 인플루언서 조건에 따라 스크랩하는 기능도 만들고 싶었는데, 시간이 부족해서 못해서 아쉽다.
profile
이후띵's 개발일지

0개의 댓글