[패스트캠퍼스 수강후기] 업무자동화강의 100% 환급 챌린지 18회차 미션
패스트캠퍼스 6개월 치 업무를 하루 만에 끝내는 업무자동화 올인원 패키지 Online
1.매크로 활용 트위터 로그인 고급1 (login_marco.py)
2.매크로를 활용해 트위터 로봇 만들기(실행, 알고리즘)
3.매크로를 활용해 트위터 로봇 만들기2(twitter_bot_tweet.py)
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)
좌우 공백을 날려준다.