카테고리 없음

[패스트캠퍼스 수강후기] 업무자동화강의 100% 환급 챌린지 18회차 미션

와인향기1 2021. 4. 18. 20:53

패스트캠퍼스 6개월 치 업무를 하루 만에 끝내는 업무자동화 올인원 패키지 Online

 

1.매크로 활용 트위터 로그인 고급1 (login_marco.py)
2.매크로를 활용해 트위터 로봇 만들기(실행, 알고리즘)
3.매크로를 활용해 트위터 로봇 만들기2(twitter_bot_tweet.py)

 

bit.ly/3pIrVoN

 

6개월 치 업무를 하루 만에 끝내는 업무자동화 | 패스트캠퍼스

대한민국 직장인, 개인 사업자 여러분! 오늘도 귀찮은 반복 업무에 스트레스 받으셨나요? 6개월 치 업무를 하루 만에 끝낸 '카이스트 공익'이 여러분의 칼퇴를 도와 드립니다! 여러 정부기관과

fastcampus.co.kr

 

매크로 활용 트위터 로그인

 

class myClass:

def_init_(self):

self.myName="병현"

def name(self):
print(self.myName)

 

코드

 

class LoginBot:

불러올 클래스에 이름

def __init__(self, site):

self 는 필수 속성 / 사이트는 두번째에 있는 변수에 저장된다.

     self.options = Options()

옵션즈를 불러온다

    self.options.add_argument("--window-size=1600,900")

argument에 켜질 픽셀 값을 입력해준다.

    self.driver = webdriver.Chrome(executable_path="chromedriver.exe", chrome_options=self.options)

로그인 창을 열어준다.

      self.driver.get(LOGIN_URLS[site.lower()])

드라이브 열고 로그인 유저 안에 있는 사이트 주소를 불러온다

 

LOGIN_URLS = {
"twitter": "https://twitter.com/login",
"daum": "https://logins.daum.net/accounts/signinform.do"
}

 

LOGIN_URLS["daum"]
Out[8]: 'https://logins.daum.net/accounts/signinform.do'

로그인 유알에스에 인덱싱으로 접근해서 대괄호 안에 스트링을 사용하면 주소가 뽑혀나온다.

 

except KeyError:


트라이에서 오류가 날경우 엑셉트가 실행된다.
(딕셔너리에 세팅되어 있는 주소가 아닐경우)

 

self.driver.get(site)
주소창에 직접 입력한다.

 

def kill(self):
    self.driver.quit()

드라이버를 종료하는 매서드

 

def login(self, id, ps):

로그인을 하는 매서드


pw.typing(id)
pw.key_press_once("tab")
pw.typing(ps)
pw.key_press_once("enter")

pw 매크로를 이용해 id와 비번을 입력해 준다.

 

 

def save_screenshot(self):
    self.driver.save_screenshot("test.png")

현재 화면이 스크린샷을 저장되는 매서드

 

 

매크로를 활용해 트위터 로봇 만들기

 

 

코드

 

id = sys.argv[1]
ps = sys.argv[2]
filename = sys.argv[3]

알그브이1 로 아이디를 입력받고 알그브이2로 비밀번호
알그브이3으로 글자가 저장된 파일을 입력받는다.

 

BOT = tb.TwitterBot(filename)
크롤러 불러오기

 

BOT.login(id, ps)
로그인 시도

 

BOT.tweet_all()
멘션 올리기

 

class TwitterBot:

클래스 이름

 

def __init__(self, contents, encoding="utf-8"):

글자가 깨지는걸 막기 위해 uft-8로 불러온다.

    self.options = Options()
    self.options.add_argument("--window-size=1600,900")

창 크기 조절

    self.go_to_twitter()

def go_to_twitter(self):

    self.driver = webdriver.Chrome(executable_path="chromedriver.exe", chrome_options=self.options)

크롬 웹드라이버를 불러온다.

    self.driver.get("https://twitter.com/login")

트위터 로그인 주소를 불러온다.

고 투 트위터를 모듈화 시킨으로써 읽기 편하게 바꿔준다.

    self.contents_file = open(contents, encoding=encoding)

컨텐츠가 들어 있는 파일을 불러온다.

 

  self.contents = self.contents_file.read().split("\n")

 

리드 라인으로 불러온 파일을 스플릿으로 쪼개준다.

a = open("contents.txt", encoding="utf8")
b = a.read()
b
Out[7]: '"음료 차갑게 먹고 싶을 때 '이것

유티에프8로 인코딩 해주면 글자가 정상적으로 불러온다.

 

   self.contents = self.contents_file.read().split("\n")

컨텐츠 파일에 있는걸 내용을 모두 불러와서 줄바꿈 부분인 백슬러쉬n 으로 스플릿해서 문단별로 나눠준다.

 

def tweet(self, text, interval=15):

인터벌은 시간 간격 텍스트를 불러온다. 인터벌 값에 = 15 입력해주면 텍스값만 입력해도 자동으로 저장된 인터벌값을 불러와준다.

 

self.driver.get("https://twitter.com/intent/tweet")

작성 전용 페이지를 입력

 

pw.type_in(text)
입력 받은 함수를 클립보드에 넣었다고 붙여넣어준다.


pw.key_on("control")
pw.key_on("enter")
pw.key_off("control")
pw.key_off("enter")

단축키를 눌러서 입력해준다.

 

    time.sleep(interval)

 

인터벌만큼 로딩을 기다려준다.

 

def tweet_all(self, interval=3):
for el in self.contents:

포 문을 활용해서 텍스트 구문들을 하나씩 불러온다

 

    self.tweet(el.strip(), interval)

좌우 공백을 날려준다.