이전글.
https://myharu.tistory.com/218
https://myharu.tistory.com/219
작성자: pws@yos.kr ( https://myharu.tistory.com )
작성일자: 2023.01.26.
도커파일버전: 0.2
작성버전: 1.0
테스트일자: 2023.01.26.
기본적인 함수는 다만들었다 저번에본 출석체크 흐름으로 yes24출석체크를 만들어보자
이파이썬 파일은 도커안에서 실행되는것이다 잊지말자!
일단 기본적인 함수를 불러오고 셀레니움 크롬을 헤드리스 방식으로 호출한다.
import warnings
warnings.filterwarnings("ignore", category=DeprecationWarning)
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
import subprocess, pyperclip, time, datetime, os, logging, telegram, asyncio, sys, calendar
from pws_func import *
def yes24():
option = Options()
option.add_argument('--headless')
option.add_argument('--no-sandbox')
option.add_argument('--disable-dev-shm-usage')
option.add_argument('--disable-gpu')
option.add_argument(f'user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36')
option.add_argument("--window-size=640,1080")
#모바일을 위해 세로로긴창을 띠운다.
driver = webdriver.Chrome(f"/usr/src/chrome/chromedriver", options=option)
출석체크 url을 호출하고 출석버튼을 눌러 로그인 이벤트를 호출하고 로그인창으로 자동이동되면 로그인하는부분을 처리한다.
#모바일을 위해 세로로긴창을 띠운다.
driver = webdriver.Chrome(f"/usr/src/chrome/chromedriver", options=option)
#출석체크 경로
url = "http://m.ticket.yes24.com/Event/2020/DailyStamp.aspx"
driver.get(url)
#출석체크 버튼을 클릭한다
driver.execute_script('fax_SetDailyStamp()')
time.sleep(2)
#로그인이 안되있으면 로그인하라고 창이뜰것이다.
try:
driver.find_element("xpath", '/html/body/div[7]/div[3]/div/button').click()
except:
print("error")
time.sleep(2)
#로그인창으로 이동되면 로그인하기
driver.find_element("xpath", '//*[@id="SMemberID"]').send_keys("아이디") #아이디
time.sleep(1)
driver.find_element("xpath", '//*[@id="SMemberPassword"]').send_keys("비번") #비번
time.sleep(2)
#혹시모르니까 로그인상태 유지 체크 해제
driver.find_element("xpath", '//*[@id="chkLoginKeep"]').click()
time.sleep(2)
driver.find_element("xpath", '//*[@id="btn_login"]').click() #로그인클릭
time.sleep(2)
로그인이 완료되면 자동으로 출석체크 페이지로 이동이 될수도 있고 안될수도 있다. 안될때를 대비해 다시 출석체크 페이지로 이동하고 출석체크 버튼을 눌른다.
url = "http://m.ticket.yes24.com/Event/2020/DailyStamp.aspx"
driver.get(url)
time.sleep(2)
# 혹시모르니까 페이지를 다시이동
driver.execute_script('fax_SetDailyStamp()')
출석여부를 저장하기위하여 텔레그램으로 출석횟수를 보내준다.
time.sleep(2)
check_alert(driver)
time.sleep(2)
#출석체크후 알림 체크해서 알려주기
countStamp = driver.find_element("xpath", '//*[@id="countStamp"]').text
countTotalDays = driver.find_element("xpath", '//*[@id="countTotalDays"]').text
tele_sand_msg("yes24 "+countStamp+countTotalDays+" 출석완료")
driver.quit()
위소스는 사이트기준으로 만든것이므로 추후 링크가 변경되거나 하면 직접 수정이 필요합니다.
728x90
반응형