Today's

길을 나서지 않으면 그 길에서 만날 수 있는 사람을 만날 수 없다

파이썬 스크립트

파이썬 으로 따라하는 자동화 스크립트 : 공감 클릭하기

Billcorea 2021. 12. 13. 09:42
반응형

나의 블로그를 찾아주는 사람이 없는 관계로 다가... 다른 사람들의 글을 읽고 댓글을 달아겠다.

그전에 먼저 그들을 글을 읽고 공감(?)을 클릭해 본다. 매일 처럼...

물론 글을 다 잘 읽고 잘 달아 주면 좋겠지만, 그들에게 힘을 보태주기 위해서 난 오늘도 자동화를 해 보기로 했다.

 

스크립트 중간에 sleep 이 들어가는 것은 아무래도 페이지가 다 로드 되기 전에 다음 action 을 하게 되면 스크립트 오류가 발생하기 때문이다.  그래서 중간  중간에 그런 걸 막기 위해서...

# coding=utf-8

import ssl
from bs4 import BeautifulSoup
from selenium import webdriver
import time

import urllib.request
import urllib.parse
from bs4 import BeautifulSoup

path = "C:\\Users\\nari4\\AppData\\Local\\Programs\Python\\Python37\\chromedriver.exe"
driver = webdriver.Chrome(path)
driver.implicitly_wait(2)
# 티스토리 접속
driver.get('https://www.tistory.com/')
# 계정 로그인 버튼 클릭
driver.find_element_by_xpath('//*[@id="kakaoHead"]/div/div[3]/div/a').click()
driver.find_element_by_xpath('//*[@id="cMain"]/div/div/div/a[1]/span[2]').click()
time.sleep(1) # 페이지가 로딩하는 걸 기다리기 위해서
# 로그인
username=driver.find_element_by_xpath('//*[@id="id_email_2"]')
username.send_keys('아이디')
password=driver.find_element_by_xpath('//*[@id="id_password_3"]')
password.send_keys('패스워드')
time.sleep(1) # 페이지가 로딩하는 걸 기다리기 위해서
driver.find_element_by_xpath('//*[@id="login-form"]/fieldset/div[8]/button[1]').click()
time.sleep(1) # 페이지가 로딩하는 걸 기다리기 위해서
driver.get("https://www.tistory.com/feed")
time.sleep(1) # 페이지가 로딩하는 걸 기다리기 위해서
html = driver.find_element_by_class_name("list_tistory").get_attribute("innerHTML")

soup = BeautifulSoup(html.encode("utf-8"),'html.parser')
urls=soup.find_all(class_="inner_desc_tit") # 내가 읽을 feed 의 URL 주소만 뽑아오기
for url in urls:
    try:
        driver.get(url['href'])
        driver.implicitly_wait(30)  # 페이지가 로딩하는 걸 기다리기 위해서
        driver.find_element_by_class_name("wrap_btn").click()
    except:
        print(url['href'] + " 이 페이지는 오류 입니다.")

print("Job END ... ")
driver.close()

준비물 : python 은 기본,  chromedriver 이건 아래 링크를 참고해서 설치하시면 될 듯...  그리고는 늘 켜져 있는 컴퓨터가 필요한데, 그걸 대신 하는 방법은 rasberry pi 을 이용하는 것도 한가지 방법일 듯...

 

말은 필요 없을 듯 하고, 스크립트 작성해서 그냥 실행하시면 끝...   다만 간혹 중간에 클릭이 되지 않는 페이지 들이 발생하고 있는데, 이건 아직...  나중에 알게 되면 수정해서 다시 업데이트를 진행하는 것으로 해야겠다.

 

크롬 드라이버 설치는 아래 링크를 참고하시길...

 

https://chromedriver.chromium.org/downloads

 

ChromeDriver - WebDriver for Chrome - Downloads

Current Releases If you are using Chrome version 93, please download ChromeDriver 93.0.4577.15 If you are using Chrome version 92, please download ChromeDriver 92.0.4515.107 If you are using Chrome version 91, please download ChromeDriver 91.0.4472.101 For

chromedriver.chromium.org

 

이걸 작성하면서 참고한 페이지

https://yobbicorgi.tistory.com/21

 

[python] Selenium을 이용한 티스토리 로그인 & 게시글 자동 작성

이번에는 Selenium과 크롬 웹드라이버('chromedriver')를 이용해 자동으로 티스토리에 로그인을 하고, 간단한 게시글을 작성하는 코드를 짜보고자 한다. 우선 자신이 사용하고 있는 크롬 버전과 맞는 c

yobbicorgi.tistory.com

 

이 페이지를 참고하면서 얻은 것은 내가 만든 스크립트가 로봇으로 걸리지 않는다는 것이다.  어떻게 구현하다 보니 로봇으로 인식이 되어 로봇이 아님을 인증해 주어야 하는 그림 캡쳐가 나오던데... 이분의 스크립트는 그런게 없었다.

 

반응형