Instagram에 연결할 수 없습니다. 인터넷에 연결되어 있는지 확인한 후 다시 시도해보세요.

=> 인터넷이 되는 상황이었음. 그래서 봇 테스트 때문에 잦은 로그인으로 막혔나 싶어서 몇번을 재시도해도 동일하더니 시간이 1~2분 정도 더 지나니 다시 잘되었다. 혹시나 메일로 이상 로그인 시도 탐지 메일이 왔을줄 알았는데 별도로 오지는 않았다. (예전에 테스트 하는 동안 이상감지 메일이 5개 정도왔던 기억때문에 확인해봄)

Posted by 유영훈
,

https://godpeople.or.kr/board/3417787

휴대폰과 통신사 무제한 문자로 그룹문자 보내는 파이썬 코드

핸드폰의 무료 문자를 이용해서 단체문자를 쉽게 보낼 수 있는 파이썬 프로그램입니다. 먼저, 핸드폰에 AirMore라는 앱을 설치합니다. Install AirMore App and Download 안드로이드 https://play.google.com/store/a

godpeople.or.kr

https://lovelydiary.tistory.com/m/23

파이썬 크롤러) pandas로 데이터를 엑셀로 저장할 때 추가 데이터를 이어 업데이트하기 !

파일을 한 번 저장하고, 그 파일 위에 추가적으로 다른 데이터를 또 이어서 저장하는 경우, import pandas as pd #names 리스트와 links 리스트는 각각 요소를 포함하는 리스트로 정의되어 있음을 전제로

lovelydiary.tistory.com

https://wikidocs.net/book/1

점프 투 파이썬

** 점프 투 파이썬 오프라인 책(개정판) 출간 !! (2019.06) ** * [책 구입 안내](https://wikidocs.net/4321) 이 책은 파이썬 ...

wikidocs.net

Posted by 유영훈
,

지난 포스팅을 보니 최근 코드를 개선한 포스팅이 더 좋아서 이 포스팅을 보고 다시 따라해본다.

https://hoonstudio.tistory.com/308?category=882469 

 

[파이썬] 인스타 좋아요봇을 최대한 사람같게 만들기 (random 라이브러리 최대한, 적극적 활용)

https://hoonstudio.tistory.com/305 [파이썬] 좋아요 봇을 스케쥴링 걸다 https://hoonstudio.tistory.com/304 [파이썬] 좋아요 봇 개선중 지난번테스트 결과확인하고 자체피드백 500건미만이 찍혀있었다. 코드실..

hoonstudio.tistory.com

그런데 인스타에서 구조를 변경하였는지 예전 코드로 실행이 잘안되서 한참 헤메는 중이다.

xpath에 아직 익숙하지 않아서인 것 같은데, 제대로 복붙해도 그렇다.

Traceback (most recent call last):
  File "D:\05.Lab\02.python\20211214_insta_like_bot\likebot.py", line 142, in <module>
    bot()
  File "D:\05.Lab\02.python\20211214_insta_like_bot\likebot.py", line 102, in bot
    like_btn = driver.find_element_by_xpath('/html/body/div[6]/div[2]/div/article/div/div[3]/div/div/section[1]/span[1]')
  File "D:\05.Lab\02.python\20211214_insta_like_bot\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 394, in find_element_by_xpath
    return self.find_element(by=By.XPATH, value=xpath)
  File "D:\05.Lab\02.python\20211214_insta_like_bot\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 976, in find_element
    return self.execute(Command.FIND_ELEMENT, {
  File "D:\05.Lab\02.python\20211214_insta_like_bot\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "D:\05.Lab\02.python\20211214_insta_like_bot\venv\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[6]/div[2]/div/article/div/div[3]/div/div/section[1]/span[1]"}
  (Session info: chrome=96.0.4664.93)

Posted by 유영훈
,

지난 포스팅에서 인스타에게 4번정도 경고를 받고

코드를 수정하였었는데, 이 랜덤한 시간, 다른 피드 랜덤 선택이 적절하게 효과를 낸 것 같아 기분이 좋다

 

https://hoonstudio.tistory.com/308

 

[파이썬] 인스타 좋아요봇을 최대한 사람같게 만들기 (random 라이브러리 최대한, 적극적 활용)

https://hoonstudio.tistory.com/305 [파이썬] 좋아요 봇을 스케쥴링 걸다 https://hoonstudio.tistory.com/304 [파이썬] 좋아요 봇 개선중 지난번테스트 결과확인하고 자체피드백 500건미만이 찍혀있었다. 코드실..

hoonstudio.tistory.com

[작업완료 화면]

[코드 반영]
- 현재사간 찍기 (피드갯수 체크 간격 확인목적)
- 체크간격 멘트수정
- 넘기는 시간 2초로 늘리기 #네트워크 속도 고려
 => 보통 돌려놓고 50개정도 되기전에 한번쯤 넘기는 코드부분에서 오류발생
 =>  2초로 늘리고 오류 미발생
- 작업시간대 12시 피하기 (다른 작업에 영향이 미침)
 => 18시~06시 (시작시간 기준)

[개선 필요사항]

- 내가 클릭하고 싶지 않은 인스타 아이디가 키워드에 일부 포함되어 있다면 그 아이디는 건너띄기 (광고 계정 패턴 확인되면 해당 키워드로 입력)

- 우측 클릭으로 피드 옮기는 것이 문제가 없다면 유지하겠지만, 이 부분도 문제가 된다면 랜덤하게 왼쪽 피드 몇번 갔다가 다시 우측으로 이동하는 것 랜덤화 적용

- 한번 스케쥴링 동안에는 태그를 1개만 사용하고 있음. => 필요 시 2~3개 태그 조합해서 하는 것 진행. 이런 필요성이 있나 싶음 현재는. 처음 봇 돌릴때 태그를 돌리기 때문에 아직은 미포함.

- 스케쥴링 로그 파일 만들기 : 현재는 스케쥴링 다 돌면 그냥 꺼짐. 그래서 잘 도는지 여부를 모름. 위 캡쳐는 파이참에서 실행해보아서 기록남음.

Posted by 유영훈
,

https://hoonstudio.tistory.com/305

 

[파이썬] 좋아요 봇을 스케쥴링 걸다

https://hoonstudio.tistory.com/304 [파이썬] 좋아요 봇 개선중 지난번테스트 결과확인하고 자체피드백 500건미만이 찍혀있었다. 코드실행 오류 및 화면하얗게처리 되어있어씀 ㅡ 인스타정책때문인가. 테

hoonstudio.tistory.com

최근 5일정도 인스타그램 좋아요봇을 따라해보고, 나한테 적용시켜보고, 경고도 받아보고

최대한 사람처럼 작동하게끔 (인스타 경고를 받지않게끔) 해보려고 한다.

 

그에 대한 코드이다. (아이디, 패스워드를 하드코딩하는 이유는 exe 파일로 만들어서 바로 스케쥴링 걸수있도록)

 

[개선 포인트]

 - 친절한 안내 : 총 갯수, 선택 해시태그, 몇초후 시작, 종료되었습니다

 - 컨텐츠 작업 : 랜덤

 - 해시태그 선택 : 랜덤

 - 좋아요작업 다음피드 : 랜덤으로 이동 (random.randint 모듈 사용)

  => 실제 인스타에서 어떻게 작동하는지 모름. 테스트해보려고 하였으나, 이미 경고받아서인지 실행 2번만에 경고팝업

 - 해당 코드를 7/20부터 돌려서 사용예정 (스케쥴링 적용 - 하루 3번) => 06시, 12시, 18시 (어차피 시작시간도 랜덤딜레이여서 정각으로 걸어도 됨)

 

[추가 개선포인트]

 - 어느정도 돌리면 해시태그를 바꾸어서 또 누르고 (랜덤하게)

  => 정말 불규칙하게 가는 것인데, 1시간 넘게 이전 코딩 개선하느라 머리가 잘 안돌아감

 

[인사이트]

 - 알고리즘도 결국 정형화되고, 경험을 쌓아서 이런 패턴이면 봇이겠구나 라는 것을 깨닫는 구조이다.

 그렇기 때문에 나조차 패턴이 전혀 예측이 안되는 코딩을 하면되지않을까. 

 => 패턴 = 랜덤 * 랜덤 * 랜덤 * .....

 

# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
import inspect, os, platform, time, random

def bot():
    #좋아요 갯수 랜덤 정의
    rand_cnt = random.randrange(182, 297)
    print("이번 좋아요 작업의 총 피드 갯수는 {}개입니다".format(rand_cnt))
    rand_tag = ['운동하는직장인','운동하는남자','운동하는여자','운동인증','운동일기','운동일지','눈바디','피트니스','직장인스타그램','운동스타그램','홈트','홈트레이닝']
    #필요한 변수 정의
    insta_id = '블라블라'
    insta_pw = '블라블라'
    insta_tag = random.choice(rand_tag) # 해시태그 하나 선택
    print("작업할 해시태그는 '{}'입니다.".format(insta_tag))
    insta_cnt = rand_cnt
    insta_sort = 1

    #크롬드라이버 로딩
    options = webdriver.ChromeOptions()
    options.add_argument('--disable-gpu')
    options.add_argument('user-agent=Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36')

    current_folder = os.path.realpath( os.path.abspath(os.path.split(inspect.getfile(inspect.currentframe()))[0]))

    if platform.system() == 'Windows':
        driver_path = os.path.join(current_folder, 'chromedriver.exe')
    else:
        driver_path = os.path.join(current_folder, 'chromedriver')

    driver = webdriver.Chrome(driver_path, options=options)
    driver.implicitly_wait(10)

    ### 인스타그램 자동 좋아요 작업 ###
    #
    # 0. 좋아죠 시작작업 랜덤 적용
    random_wait_time = random.randrange(3, 5)
    print("좋아요 작업은 {}초 후에 시작됩니다".format(random_wait_time))

    # 1. 인스타그램 로그인 페이지로 이동
    driver.get('https://www.instagram.com/?hl=ko')
    print('로그인중....')
    time.sleep(3)

    # 2. 아이디 입력창을 찾아서 위에서 입력받은 아이디(insta_id)값 입력
    id_input = driver.find_element_by_xpath('//*[@id="loginForm"]/div/div[1]/div/label')
    id_input.click() #입력창 클릭
    id_input.send_keys(insta_id)

    # 아이디 입력 # 2-1. 패스워드 입력창을 찾아서 위에서 입력받은 패스워드(insta_pw)값 입력
    pw_input = driver.find_element_by_xpath('//*[@id="loginForm"]/div/div[2]/div/label')
    pw_input.click()
    pw_input.send_keys(insta_pw)

    # 3. 로그인 버튼 클릭
    login_btn = driver.find_element_by_xpath('//*[@id="loginForm"]/div/div[3]/button')
    login_btn.click() # 잠시 대기
    time.sleep(3)


    # add. 로그인정보 저장 > '나중에 하기' 버튼 클릭
    later_btn = driver.find_element_by_xpath('//*[@id="react-root"]/section/main/div/div/div/div/button')
    later_btn.click() # 잠시 대기
    time.sleep(3)



    # 4. 작업할 해시태그 검색 결과 페이지로 이동
    driver.get('https://www.instagram.com/explore/tags/{}/'.format(insta_tag))
    time.sleep(2)

    # 5. 인기게시물 혹은 최근게시물 첫번째 피드 선택
    if insta_sort == '0':
        #인기게시물 첫번째 피트 선택
        hot_first_feed = driver.find_element_by_xpath('//*[@id="react-root"]/section/main/article/div[1]/div/div/div[1]/div[1]/a/div/div[2]')
        hot_first_feed.click()

    else:
        #최근게시물 첫번째 피드 선택
        new_first_feed = driver.find_element_by_xpath('//*[@id="react-root"]/section/main/article/div[2]/div/div[1]/div[1]/a/div[1]/div[2]')
        new_first_feed.click()

    time.sleep(1)
    print("좋아요 작업 시작합니다")

    # 6. 좋아요 작업 - 입력한 횟수만큼 반복 작업
    for idx in range(insta_cnt):
        div = driver.find_element_by_xpath('/html/body/div[5]/div[2]/div/article/div')
        div = div.find_element_by_xpath('/html/body/div[5]/div[2]/div/article/div[3]')
        like_btn = div.find_element_by_tag_name('button') #좋아요 버튼

        btn_svg = like_btn.find_element_by_tag_name('svg')
        svg_txt = btn_svg.get_attribute('aria-label')

        if svg_txt != '좋아요':
            print('이미 좋아요 작업한 피드')
        else:
            like_btn.click()  # 좋아요 클릭
            print('{}번째 피드 좋아요 작업 완료'.format(idx + 1))

        # 너무 빠르게 작업을 할 경우 많은 양의 작업을 하게 되어 인스타그램측에서 계정 정지나 경고를 할 수 있으니
        # 작업과 다음 작업 사이의 속도를 조절하기 위해 20초 이상을 설정해주세요.
        rand_time = random.randrange(24,58)
        time.sleep(rand_time)
        print(rand_time) # 랜덤 시간 주기 24~58s

    # 7. 좋아요 작업 - 다음 피드로 이동
        if idx < insta_cnt:
            try:
                i = 0
                while i != 2:
                    i = random.randint(1,3)
                    next_feed = driver.find_element_by_link_text('다음')
                    next_feed.click()
                    time.sleep(1) # '다음' 클릭 딜레이 간격
            except NoSuchElementException as n:
                print('피드 개수 부족으로 작업이 종료됩니다.')
                break


    print('계획된 {} 좋아요 작업이 모두 완료되었습니다'.format(insta_cnt))
    driver.quit()

bot()

800개 이상 쭉 좋아요을 찍는 것보다는 효과가 적겠지만..

꾸준하게 신경안쓰고 안전하게 스케쥴링 돌리는 것이 더 중요하다. 계정 중지 당하지 않고.

 

Posted by 유영훈
,

https://hoonstudio.tistory.com/304

 

[파이썬] 좋아요 봇 개선중

지난번테스트 결과확인하고 자체피드백 500건미만이 찍혀있었다. 코드실행 오류 및 화면하얗게처리 되어있어씀 ㅡ 인스타정책때문인가. 테스트진행. https://hoonstudio.tistory.com/m/303 [파이썬] 인스

hoonstudio.tistory.com

이렇게 파이썬 파일을 실행파일로 만들었고

 * 명령어 : pyinstaller --onefile 파일명

 (pip install pyinstaller로 미리 라이브러리가 설치되어 있어야함)

 

이렇게 스케쥴러를 걸었다

 스케쥴링 내용은 각각 한글 태그, 영문태그인데, 한국인이 활동하는 06~24시는 한글태그, 그외에 영어를 사용하는 외국인 활동시간을 00~06시 타겟으로 진행하였다. 횟수는 파이썬 코드에 하드코딩되어 있다. 매번 내가 입력할수도 있지만, 그렇다면 자동화가 아니기에 미리 계산해서 넣었다.

 

동시에 작업하면 더 좋지 않은가, 시간 간격을 20초 이내로 하면 더 빠르지 않겠냐는 의문이 생길순 있겠지만,

인스타그램에 불법으로 걸리지 않게끔 하기 위해서 조정하였다.

 

어제 20~30개 좋아요 수준이었던 내 최신 게시글이 왠지 모르게 중간에 파이썬이 멈추기는 하였지만,

현재는 110개를 넘어섰다. 확실히 효과가 있는 것 같다.

 

이 작업스케쥴러로 일주일만 돌려보면 어떤 현상이 발생할지 궁금하다.

물론, 중간중간 신규 피드를 올려야겠지?

Posted by 유영훈
,

지난번테스트 결과확인하고 자체피드백

500건미만이 찍혀있었다. 코드실행 오류 및 화면하얗게처리 되어있어씀
ㅡ 인스타정책때문인가. 테스트진행.

https://hoonstudio.tistory.com/m/303

[파이썬] 인스타그램 좋아요 봇 따라해보기

아래 출처에서 인스타그램 좋아요 봇 파이썬 코딩을 보고 따라해보았다 주의해야할 점은  - 인스타그램 2차 비밀번호 인증 해제  - 페이스북으로 로그인 하였다면, 인스타그램 비밀번호도 설정

hoonstudio.tistory.com



코드수정 완료
ㅡ 좋아요찍힌것은 안찍히도록
ㅡ 처음 로그인 페이지 2번나오는것 처리
ㅡ 로그인정보 나중에하기 클릭 추가
ㅡ 인기게시물이 아닌 새게시물로
ㅡ 시간을 20~25초 랜덤으로. 타임 슬립.

개선포인트
ㅡ 실행파일화 해서 스케쥴러로 각 태그별 돌리는것
  ㅡ 어느시간대에 그 태그가 잘사용되는지
  ㅡ 로그인정보 암호화 처리 및 소스코드 못보도록 보안설정
ㅡ 특정 아이디 또는 키워드는 제외하기

확인된것
ㅡ 내가 브라우져안띄우거나 다른작업해도 영향없음

확인필요
ㅡ 동시브라우져 띄워서 작업가능한지 (계정 1개 또는 다수)

Posted by 유영훈
,

이번 7월에 파이썬에 익숙해지기 위해
독서통신과 패스트캠퍼스강의 총 3개신청하였다

개발자들한테 알고리즘 테스트치는 이유와
더 좋은코드를 위한 코드리뷰를 하는 이유를 조금씩 배우고있음

Posted by 유영훈
,

패스트캠퍼스, 6개월치 업무를 하루만에 끝내는 업무자동화 수강 시작하였다.

스트링, list 등 파이썬 기본 코딩부터 시작하였다

목표는 엑셀, 웹, 매크로 등 자동화 시키기

Posted by 유영훈
,