개요
파이썬 자동화 프로그램을 만들어 자동으로 좋아요를 하는 봇을 만들어 보자
혹시나 앞선 포스팅을 못 봤다면 복습하고 오자.
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 이미 좋아요 누른 게시물 패스하기
2020/10/21 - [IT/파이썬] - 파이썬 인스타그램 좋아요 봇 만들기 #11 태그 검색 변경하기
2020/10/29 - [IT/파이썬] - 파이썬 인스타그램 좋아요 봇 만들기 #12 광고성 글 건너뛰기
2020/11/03 - [IT/파이썬] - 파이썬 인스타그램 좋아요 봇 만들기 #13 selenium 언어설정
들어가며
이때까지 좋아요 봇을 만들어서 타 게시물에 좋아요를 자동으로 하는 매크로 봇을 만들어 보았다. 좋아요만으로는 아무래도 나의 계정을 알리는데 한계가 있다.
이에, 좋아요를 한 게시물에 대해서 댓글도 남기는 기능을 구현하였고, 이 내용에 대해서 포스팅 해보고자 한다.
로직
1) 사용할 댓글에 대한 리스트를 미리 작성해 놓는다. 필자는 약 20개 정도의 임의 댓글을 구성하였다.
2) 댓글 사용 여부 Flag 를 두어, 댓글 기능 on / off 를 제공한다.
3) 좋아요 20개 당 하나의 댓글을 달아 놓도록 rand 함수를 구현한다.
4) 댓글 element 를 얻어오고, 댓글을 작성한다.
댓글 리스트
필자는 먹거리 관련 포스팅을 하고 있기 때문에, 먹거리 관련 코멘트를 미리 작성해 두고, 이를 list 화 해둔다.
comment_list = ['먹팔해요', '좋은 사진 잘보고 갑니다 ~~~', '맛있어보이네요오!! 먹팔해요 선팔하구 갈게요',
'정성가득 홈메이드는 사랑이죠❤ 넘넘 맛있겠어요♥ 맛있는거 많이 드시고 행복한 하루 보내시길바래요 ^^',
'깔끔한 밥 맛있겠네용♥', '제가 좋아하는 비쥬얼♥' ,'피드 잘 구경하고 선팔하고갑니다. 먹팔하고 소통해요 ^^',
'너무 너무 반가워요!♥ 우리 먹팔해요 ₍₍ (ง ˙ω˙)ว ⁾', '선팔하고갑니당 먹팔해요❤️❤️',
'♥ 먹팔하고 자주소통해용 ‼️ ♥ 댓글 달아주시면 먹팔할게용 ♥', '사진이 너무 맛있어보여요 소통하고싶어서 선팔하고갑니다 ^^ 먹팔해욧',
'선팔하고가요~ 먹팔해용♥', '우와 맛있겠어요옹 먹팔하고 찐소통해요오:)', '맛나보여요 ^^ 선팔하고 갑니다~ 먹팔하고 소통자주해요',
'돌돌말아 한입하고프네요♥', '피드 구경하고 선팔하고가요 먹팔하고 소통해요' ]
댓글 기능 on / off Flag
사용하여 테스트를 진행하다 보니, 계정이 잠기는 일이 발생하였다. 매번 댓글 기능을 수행하는것이 아니라, 필요할때만 사용하기 위해서 댓글 on / off 을 할 수 있도록 Flag 를 하나 설정 하였다.
#comment_flag = False
comment_flag = True
완성된 코드
# 댓글 달기
if comment_flag == True and randint(0,20) == 0 :
try :
comment = browser.find_element_by_xpath('/html/body/div[5]/div[2]/div/article/div[3]/section[3]/div/form/textarea')
except :
try :
comment = browser.find_element_by_xpath('/html/body/div[4]/div[2]/div/article/div[3]/section[3]/div/form/textarea')
except :
print ("exception in Comment")
break
comment_content = comment_list[randint(0,len(comment_list)-1)]
ac = ActionChains(browser)
ac.move_to_element(comment)
ac.click()
ac.pause(3)
ac.send_keys(comment_content)
ac.pause(1)
ac.send_keys(Keys.ENTER)
ac.perform()
print ("Comment Sucess ", comment_content)
파이썬은 Tab 에 굉장히 민감하다. 복사 붙여넣기시 Tab 부분이 정상적으로 복붙이 안될 수 있으므로 이에 유의하여 코드를 수행하자.
xpath 를 찾는 방법은 2020/10/05 - [IT/파이썬] - 파이썬 인스타그램 좋아요 봇 만들기 #9 xpath 찾기에서 상세히 기술하였으니, 댓글 영역에 대한 xpath 를 찾자.
테스트 하다보니, 게시물에 대해서 댓글 영역의 xpath 가 두가지 정도로 나뉘어 있음을 확인했고, 두 가지 xpath 를 try-excpet 으로 묶었다.
댓글이 잠겨있거나 다른 xpath 를 가지는 경우에는 exception 이 발생한다.
'프로젝트 > 인스타그램 좋아요 봇' 카테고리의 다른 글
파이썬 인스타그램 좋아요 봇 만들기 #15 자동 팔로우 하기 (4) | 2021.01.07 |
---|---|
파이썬 인스타그램 좋아요 봇 만들기 #13 selenium 언어설정 (0) | 2020.11.03 |
파이썬 인스타그램 좋아요 봇 만들기 #12 광고성 글 건너뛰기 (0) | 2020.10.29 |
파이썬 인스타그램 좋아요 봇 만들기 #11 태그 검색 변경하기 (3) | 2020.10.21 |
파이썬 인스타그램 좋아요 봇 만들기 #10 이미 좋아요 누른 게시물 패스하기 (11) | 2020.10.08 |
댓글