Last active
December 12, 2022 07:53
-
-
Save onesup/5e0f59b6832dbca282b6365135a5b39a to your computer and use it in GitHub Desktop.
참트루킹의 매공모 - 네이버 카페에 출석체크하기 매크로
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 사전 준비물 | |
# 파이어폭스 | |
# 게코드라이버 - geckodriver | |
# 루비 - ruby | |
# 셀레니움을 쓸 수 있게 설정합니다. 브라우저와 코드 사이에서 커뮤니케이션을 해주는 라이브러리입니다. | |
require "selenium-webdriver" | |
# 파이어폭스를 셀레니움과 연결해줍니다. 파이어폭스가 다른 브라우저에 비해 오토메이션 속도가 빠른편입니다. | |
driver = Selenium::WebDriver.for :firefox | |
# 네이버 로그인 창 주소입니다. 로그인 후, cafe.naver... 이후의 주소로 이동됩니다. | |
uri = 'https://nid.naver.com/nidlogin.login?url=https%3A%2F%2Fcafe.naver.com/remonterrace' | |
# 브라우저가 위의 주소로 이동합니다. | |
driver.navigate.to uri | |
# 로그인에 필요한 아이디입니다. | |
id = 'charmT_ruking' | |
# 아이디 입력칸에 아이디를 입력합니다. | |
driver.find_element(id: 'id').send_keys(id) | |
# 로그인에 필요한 비밀번호입니다. 이 스크립트를 공유할 때 비밀번호도 같이 공유될 수 있으니 주의하세요. | |
password = '1q2w3e' | |
# 비밀번호 입력칸에 비밀번호를 입력합니다. | |
driver.find_element(id: 'pw').send_keys(password) | |
# 초록색 [로그인] 버튼을 클릭합니다. | |
driver.find_elements(class: 'btn_global')[0].click | |
# 출석체크 페이지 주소입니다. | |
uri = 'https://cafe.naver.com/AttendanceView.nhn?search.clubid=10298136&search.menuid=93' | |
# 브라우저가 위의 주소로 이동합니다. 11번 줄의 코드와 동일합니다. | |
driver.navigate.to uri | |
# 브라우저가 출석체크 페이지로 이동하는 5초간 기다려줍니다. Zzz... | |
sleep(5) | |
# 네이버 카페의 출석체크 페이지는 껍데기 프레임과 콘텐츠 프레임으로 이루어져 있습니다. | |
cafe_main_window = driver.find_element(id: 'cafe_main') | |
# 콘텐츠 프레임으로 전환합니다. | |
driver.switch_to.frame(cafe_main_window) | |
# 출석체크하면서 남길 문구입니다. | |
text = '출첵' | |
# 출첵 문구를 출첵 텍스트 필드에 입력해줍니다. | |
driver.find_element(id: 'cmtinput').send_keys(text) | |
# 입력한 문구를 출첵 게시판에 저장합니다. | |
driver.execute_script("submitForm();") | |
# 자동으로 출첵이 된 것을 8초간 감상합니다. Zzz... 35번 줄의 코드와 동일합니다. | |
sleep(8) | |
# 브라우저를 종료합니다. 창닫기 버튼 눌러서 종료하는것도 귀찮으니까 코드로 해결합니다. | |
driver.close |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment