You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

71 lines
2.9 KiB

2 months ago
import time
import traceback
from loguru import logger
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from ocr import DdddOcr
# code by wlt233 | for LoveLive! Series AsiaTour 2024
# 2024.11.10 | v0.1
# ref: https://www.ticketlink.co.kr/global/zh/product/51390
2 months ago
2 months ago
def get_cookie(username, password, headless):
try:
ocr = DdddOcr(origin_onnx_path="./data/common_old.onnx", show_ad=False)
ocr.set_ranges(2)
options = Options()
options.headless = headless
driver = webdriver.Chrome(chrome_options=options,
executable_path="./data/chromedriver.exe")
driver.get("https://www.ticketlink.co.kr/global/zh/product/51390")
driver.find_element(by=By.ID,value="loginBtn").click()
time.sleep(3)
driver.switch_to.window(driver.window_handles[-1])
driver.find_element(by=By.ID,value="id").send_keys(username)
driver.find_element(by=By.ID,value="pw").send_keys(password)
driver.find_element(by=By.ID,value="loginBtn").click()
time.sleep(3)
driver.switch_to.window(driver.window_handles[-1])
driver.get("https://www.ticketlink.co.kr/global/zh/reserve/plan/schedule/1740993756")
driver.find_element(by=By.ID,value="captcha_img").screenshot("./data/captcha.jpg")
with open("./data/captcha.jpg", "rb") as f:
img = f.read()
result = str(ocr.classification(img)).upper()
logger.info(f"验证码:{result}")
driver.find_element(by=By.ID,value="ipt_captcha").send_keys(result)
driver.find_element(by=By.CLASS_NAME,value="btn_submit").click()
time.sleep(1)
error_cls = driver.execute_script("return document.getElementsByClassName('txt_error')[0].getAttribute('class');")
while not "ng-hide" in error_cls:
driver.execute_script("document.getElementsByClassName('btn_refresh')[2].click();")
time.sleep(1)
driver.find_element(by=By.ID,value="captcha_img").screenshot("./data/captcha.jpg")
with open("./data/captcha.jpg", "rb") as f:
img = f.read()
result = str(ocr.classification(img)).upper()
logger.info(f"验证码:{result}")
driver.find_element(by=By.ID,value="ipt_captcha").send_keys(result)
driver.find_element(by=By.CLASS_NAME,value="btn_submit").click()
time.sleep(1)
error_cls = driver.execute_script("return document.getElementsByClassName('txt_error')[0].getAttribute('class');")
cookies = driver.execute_script("return document.cookie;")
return cookies
except Exception as e:
logger.error(f"{e} {e.args}\n{traceback.format_exc()}")
return ""
if __name__ == "__main__":
get_cookie("vj.zhzh.dbb.d.udhj.db@gmail.com", "Nijigasaki27", False)