본문 바로가기
Python

[파이썬/셀레니움] 인스타그램 봇 만들기 - 2일차 : 알고리즘 구체화

by LasBe 2021. 4. 10.
반응형

[개발 일지]

2021.04.06 - [Language/Python] - [파이썬/셀레니움] 인스타그램 봇 만들기 - 1일차 : 셀레니움 설치 및 기초

2021.04.10 - [Language/Python] - [파이썬/셀레니움] 인스타그램 봇 만들기 - 2일차 : 알고리즘 구체화

2021.04.10 - [Language/Python] - [파이썬/셀레니움] 인스타그램 봇 만들기 - 3일차 : 코드 개선

2021.04.11 - [Language/Python] - [파이썬/셀레니움] 인스타그램 봇 만들기 - 4일차 : 알고리즘 개선

2021.04.13 - [Language/Python] - [파이썬/셀레니움] 인스타그램 봇 만들기 - 5일차 : Pyqt GUI, 패키징

[중요 기능]

2022.01.05 - [Language/Python] - [파이썬/셀레니움] 인스타그램 봇 만들기 - PyQT 리스트 추가, 삭제

 

해시태그 검색 기능 구현

이제 해시태그를 검색 해 게시물을 찾으러 가야된다.

코드는 해시태그 박스를 클릭하고 바로 키워드를 넣으면 될 줄 알았지만

클릭 시 클래스가 동적으로 변하기 때문에 다시금 클래스를 추출하고 키워드 입력 후 

주르륵 뜨는 키워드 중 첫 번째를 선택해 클릭해준다.

 

 

일반 게시물 찾아가기

인기 게시물은 대형 계정이라 맞팔에 인색하기 때문에

상단에 뜨는 9개의 인기 게시물을 건너뛰어준다.

 

 

게시물 클래스의 10번째 클래스를 클릭해주면 최근에 올라온 첫 번째 게시물이 클릭된다.

 

 

커서의 클래스를 클릭해서 프로필에 접속해준다.

 

 

팔로우 되어있는 사람 제외

이게 가장 고민했던 구문이다.

클릭 시 팔로우가 되어있다면 좋아요나 팔로우를 건너뛰고 뒤로 가야되는데

 

 

다양한 방법을 사용하다 전부 실패했는데

class_name('클래스')를 변수 e에 받아오고

e.text로 버튼의 '팔로우' 텍스트를 변환할 수 있었다.

그걸 토대로 버튼이 팔로우가 아니면 뒤로가서 다음 게시물을 탐색하고

팔로우 버튼이 살아있을 경우엔 다음 과정을 진행한다.

 

(이 부분은 더 공부를 해야겠다.)

 

 

팔로우와 게시물 좋아요

이제 좋아요 팔로우 DM 부분

프로필의 첫 번째 게시물을 클릭 - 좋아요 - 다음 - 좋아요 - 다음 - 게시물 닫기

이 순으로 진행되고 게시물을 닫은 다음 스크롤이 너무 내려가 있어

메시지 보내기 버튼이 안보여 오류가 나는 경우가 있기 때문에 PAGE_UP으로 스크롤을 올려준다.

 

메시지 보내기 버튼을 클릭 후 메세지 박스에 문구를 입력해야 하는데

클래스를 사용할 경우 좌측 계속 바뀌는 DM목록 개수에 영향을 받아 xpath로 경로를 얻었다.

그 다음은 클릭 - 텍스트 - 엔터

 

초기상태는 원래 URL로 이동할 수 있지만 혹시나 싶은 봇 의심을 피하기 위해

6회 뒤로가기로 이동해주었다.

 


셀레니움에 대해 백지 상태로 진행해본 프로그램이지만

생각보다 코드 짜기가 쉬워 2일만에 쉬엄쉬엄 만들 수 있었다.

 


개선점

 

1. 문구 여러개를 리스트에 넣어두고 랜덤으로 DM 보내기

 

2. 확실한 예외처리

 

3. 봇 차단 방지 대책

 

4. 파이썬 코드를 exe 파일로 제작해보기

 

더보기

파이썬, 셀레니움, python, selenium, 인스타그램, 봇, 인스타그램 자동화, 인스타 봇, 인스타 자동화, 인스타 자동화 프로그램 만들기, 인스타 봇 만들기, 파이썬 gui, pyqt gui, 인스타그램 차단, 인스타 밴, 인스타 차단

반응형

댓글


오픈 채팅