본문 바로가기
프로젝트/인스타그램 좋아요 봇

파이썬 인스타그램 좋아요 봇 만들기 #11 태그 검색 변경하기

by 큰공 2020. 10. 21.
728x90
반응형

 

개요

 파이썬 자동화 프로그램을 만들어 자동으로 좋아요를 하는 봇을 만들어 보자

 혹시나 앞선 포스팅을 못 봤다면 복습하고 오자.

2020/08/26 - [IT/파이썬] - 파이썬 인스타그램 좋아요 봇 만들기 #1 Selenium

2020/08/27 - [IT/파이썬] - 파이썬 인스타그램 좋아요 봇 만들기 #2 로그인

2020/08/31 - [IT/파이썬] - 파이썬 인스타그램 좋아요 봇 만들기 #3 태그검색

2020/09/02 - [IT/파이썬] - 파이썬 인스타그램 좋아요 봇 만들기 #4 좋아요 누르기

2020/09/07 - [IT/파이썬] - 파이썬 인스타그램 좋아요 봇 만들기 #5 최근 게시물 선택하기

2020/09/08 - [IT/파이썬] - 파이썬 인스타그램 좋아요 봇 만들기 #6 랜덤함수

2020/09/14 - [IT/파이썬] - 파이썬 인스타그램 좋아요 봇 만들기 #7 list index out of range

2020/09/17 - [IT/파이썬] - 파이썬 인스타그램 좋아요 봇 만들기 #8 페이지 새로고침

2020/10/05 - [IT/파이썬] - 파이썬 인스타그램 좋아요 봇 만들기 #9 xpath 찾기

2020/10/08 - [IT/파이썬] - 파이썬 인스타그램 좋아요 봇 만들기 #10 이미 좋아요 누른 게시물 패스하기

 

파이썬 인스타그램 좋아요 봇 만들기 #10 이미 좋아요 누른 게시물 패스하기

개요  파이썬 자동화 프로그램을 만들어 자동으로 좋아요를 하는 봇을 만들어 보자  혹시나 앞선 포스팅을 못 봤다면 복습하고 오자. 2020/08/26 - [IT/파이썬] - 파이썬 인스타그램 좋아요 봇 만들�

coinpipe.tistory.com

들어가며

 앞선 코드에서는 좋아요 카운트를 높힐 경우, 1500개 정도 좋아요를 누르게 되는데, 이것이 하나의 태그로 검색된 게시물을 지속적으로 누르게 된다.

 좀 더 효율적으로 여러개의 태그에 대해서 좋아요를 누르고 싶을 경우 list 를 활용해서 태그 검색을 변경하는 시나리오로 코드를 변경해보자.

 

List 란?

 우선 파이썬의 list 자료형을 이해할 필요가 있다. c / java 에 익숙하다면 기본이 되는 자료형 중의 하나 이므로 쉽게 배열이라고 생각하면 된다.

 하나의 변수를 여러가지로 모아서, 인덱싱으로 쉽게 접근할 수 있는 집합 이라고 보면 된다.

 

Selenium WebDriver get

 이때까지 selenium webdirver 를 import 패키지로 해서, 해당 라이브러리에서 제공하는 함수들을 사용해보았는데, 이것에 모든 API 와 공식적인 내용이 궁금하기도 한다.

 항상 개발시에는 각 라이브러리가 제공하는 공식 페이지를 참고하는것이 가장 좋다.

https://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.chrome.webdriver

 

7. WebDriver API — Selenium Python Bindings 2 documentation

A single IP address, as a string. If any IPv4 address is found, one is returned. Otherwise, if any IPv6 address is found, one is returned. If neither, then None is returned.

selenium-python.readthedocs.io

 여기서우리는 get 함수만 일단 살펴보자.

 인자로는 url 형식이 들어가며, 현재 브라우져 세션의 web page를 로딩한다. 로 되어 있다.

 쉽게 말하자면 원하는 페이지로 이동하는 함수이다.


get(url)Loads a web page in the current browser session.

 

인스타그램 태그 url 주소

 그럼 우리는 원하는 태그로 url 주소를 알면, 위의 get 함수로 원하는 페이지로 이동할 수 있음을 알 수 있다.

 인스타그램에서 태그는 검색기능을 이용해서 바로 검색하여 이동할 수 도 있지만, url 을 입력해서 바로 이동할 수 있다.

https://www.instagram.com/explore/tags/맛스타그램

 

코드

tag = ['맛스타그램', '먹팔', '맛스타그램', 'like4like', '먹스타그램', '맛스타그램', 'food', '집밥' ]

#중간생략

refresh_count = 0

while like_count < total_like_count and nextFeed_err <= error_popup_ignore_count:

    try :
        # 최근 게시물 중 첫번쨰 게시물 선택하기

    except :
        continue

    for a in range(onetime_count):
        # 좋아요 누르기
        
        # 다음 피드로 이동하기
        for b in range(randint(random_next_min,random_next_max)):
            nextFeed()

    refresh_count += 1
    browser.get('https://www.instagram.com/explore/tags/' + tag[refresh_count % len(tag) ] ) 
    print ("refresh for : ", tag[refresh_count % len(tag) ] )

print ("end")

 1) tag를 list 형식으로 변경하고, 원하는 tag의 목록을 list 화 한다.

 2) refresh_count 변수를 지정하고, 해당 변수를 좋아요 50번 수행이 끝나면, refresh_count 를 하나씩 증가시킨다.

 3) get 함수를 이용해서, instartgram tag 주소에, refresh_count 를 tag list 의 길이로 모듈러 연산으로 나눈 값을 인덱싱으로 하여, tag 중 하나를 불러온다.

 

맺으며

 이번 코드의 핵심은 get으로 원하는 태그의 url 을 불러오는것이다. 이를 이용하기 위해서 list 를 사용하였고, list 의 인덱싱을 얻기위해서 % (모듈러 연산) 을 사용하였다.

 전체적인 로직은 ( 좋아요 50번 (onetime_count) 수행 -> 새로운 태그로 이동 -> 최근 게시물 선택 -> 좋아요 50번 수행 ) 의 반복이며 이를 전체 좋아요 카운터 (total_like_count) 에 해당 될 때까지 수행한다.

 

 

 

 

 

 

728x90
반응형

댓글3