728x90
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
import time
from random import *

ID = ""
PW = "!"
start_region="창원중앙"
end_region="서울"
target_time="16:03" #시간 포맷 지켜야 함

browser = webdriver.Chrome('chromedriver')

time.sleep(2)
#로그인 처리
search = browser.find_element_by_xpath('//*[@id="txtMember"]')
search.send_keys(ID)

search = browser.find_element_by_xpath('//*[@id="txtPwd"]')
search.send_keys(PW)
search.send_keys(Keys.RETURN)

time.sleep(2)

print(browser.window_handles)

time.sleep(1)
#코로나 팝업 뜨는거 있으면 종료
if len(browser.window_handles) > 1:
    browser.switch_to_window(browser.window_handles[1])
    browser.close()

    browser.switch_to_window(browser.window_handles[0])

# 출발지, 도착지 입력 후 검색
search = browser.find_element_by_xpath('//*[@id="txtGoStart"]')
search.clear()
search.send_keys(start_region)

search = browser.find_element_by_xpath('//*[@id="txtGoEnd"]')
search.clear()
search.send_keys(end_region)

search = browser.find_element_by_xpath('//*[@id="res_cont_tab01"]/form/div/fieldset/p/a')
search.send_keys(Keys.RETURN)

time.sleep(2)

print(browser.window_handles)
#지역마다 팝업 뜨는거 있어서 있으면 종료
time.sleep(1)
if len(browser.window_handles) > 1:
    browser.switch_to_window(browser.window_handles[1])
    browser.close()

    browser.switch_to_window(browser.window_handles[0])

time.sleep(2)

while True:
    for i in range(1,10): #검색하고 상위 10개정도 안에 내가 원하는 시간 있다 가정
        search_row = browser.find_element_by_xpath('//*[@id="tableResult"]/tbody/tr['+str(i)+']/td[3]')
        search_row_innerhtml = search_row.get_attribute('innerHTML')
        if search_row_innerhtml.find(target_time)>0: #i가 원하는 시간의 row가 됨
            break
   
    #일반석 영역의 td 안의 내용을 읽어서 매진이나 입석,좌석 묶음 판매? 인 경우 스킵
    search = browser.find_element_by_xpath('//*[@id="tableResult"]/tbody/tr['+str(i)+']/td[6]')
    search_innerhtml = search.get_attribute('innerHTML')
    print(search_innerhtml.strip())
    if search_innerhtml.find("매진") > 0 or search_innerhtml.find("묶음") > 0:
        browser.refresh()
        time.sleep(2)
    else:
        #일반석 매진이나 입석, 좌석 묶음 판매 아니면 안에 있는 a 태그 클릭
        search = browser.find_element_by_xpath('//*[@id="tableResult"]/tbody/tr['+str(i)+']/td[6]/a[1]')        
        search.send_keys(Keys.RETURN)
        #걸리면 텔레그램으로 메시지 보내려했는데 key 까먹음
        #결제는 자기가 알아서^^
   
728x90

+ Recent posts