2025-05-28 14:23:58 +09:00

138 lines
3.4 KiB
Python

from tkinter import *
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service as ChromeService
from selenium.webdriver.chrome.options import Options as ChromeOptions
from webdriver_manager.chrome import ChromeDriverManager
from bs4 import BeautifulSoup
# id pw log.login
win=Tk()
win.geometry("400x300")
win.title('아이템매니아로그인')
win.option_add("*Font","궁서 20")
#로고
lab_logo = Label(win)
img = PhotoImage(file="./itemmania_logo.gif", master=win)
#img = img.subsample(2)
lab_logo.config(image=img)
lab_logo.pack()
#id 라벨
lab1 = Label(win)
lab1.config(text="아이디")
lab1.pack()
#pw 입력창
ent1 = Entry(win)
ent1.insert(0,"sungro815")
ent1.bind()
ent1.pack()
#pw 라벨
lab2 = Label(win)
lab2.config(text="비밀번호")
lab2.pack()
#pw 입력창
ent2 = Entry(win)
ent2.config(show="*")
ent2.insert(0,"tjekdfl")
ent2.pack()
#로그인버튼
btn = Button(win)
btn.config(text='로그인')
def login():
my_id = ent1.get()
my_pass = ent2.get()
options = ChromeOptions()
user_agent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36"
options.add_argument('user-agent=' + user_agent)
options.add_argument("lang=ko_KR")
options.add_argument('window-size=1920x1080')
options.add_argument("disable-gpu")
options.add_experimental_option("detach", True)
service = ChromeService(executable_path=ChromeDriverManager().install())
driver = webdriver.Chrome(service=service, options=options)
url = "https://www.itemmania.com/portal/user/p_login_form.html"
driver.get(url)
driver.implicitly_wait(5)
xpath1 = "//input[@name='user_id']"
driver.find_element(By.XPATH, xpath1).send_keys(my_id)
driver.implicitly_wait(5)
xpath2 = "//input[@name='user_password']"
driver.find_element(By.XPATH, xpath2).send_keys(my_pass)
driver.implicitly_wait(5)
xpath3 = "//button[@class='btn btn_blue']"
driver.find_element(By.XPATH, xpath3).click()
driver.implicitly_wait(5)
lab3.config(text='[메세지]로그인성공')
# 모든 팝업 창 핸들 가져오기
popup_handles = driver.window_handles
# 부모 창 핸들 가져오기
parent_handle = driver.current_window_handle
# 모든 팝업 창 닫기 (부모 창 제외)
for handle in popup_handles:
if handle != parent_handle:
driver.switch_to.window(handle)
driver.close()
# 다시 부모 창으로 돌아가기
driver.switch_to.window(parent_handle)
driver.get("https://trade.itemmania.com/index.html")
driver.implicitly_wait(5)
xpath3 = "//input[@name='searchGameServer']"
driver.find_element(By.XPATH, xpath3).click()
page_content = driver.page_source
soup = BeautifulSoup(page_content, 'html.parser')
# <ul> 태그 중에서 속성을 가져올 요소 선택
selected_ul = soup.find('ul')
# 선택한 <ul> 요소의 모든 속성 가져오기
attributes = selected_ul.attrs
# 속성 출력
print(attributes)
# element = soup.find('ul', {'class': 'popular_list'})
# print(element.text)
#
# # 전체 HTML 데이터 가져오기
# html_data = element.prettify()
#
# # HTML 데이터 출력
# print(html_data)
#인기게임확인
btn.config(command=login)
btn.pack()
#메세지라벨
lab3 = Label(win)
lab3.pack()
win.mainloop()