공부/파이썬 2021. 3. 25. 01:18

파이썬 selenium공부

반응형

온라인게임을 자주 하면서 클릭 한번으로 로그인부터 실행까지

시켜주는 자동화? 프로그램이 하나 있으면 좋겟다고 생각해서

간단하게 한개 만들어 봤다

코드는 이게 전부다.

먼저 크롤링 할때 사용하는 라이브러리를 받아준다

pip install selenium

사용하는 터미널(윈도우는 파워쉘 or cmd)에 명령어를 적어주고 라이브러리를 설치한다

그러고 자주 사용하는 ide를 실행시켜 파일을 하나 만들어준다

from selenium import webdriver

선언을 해준후

iedriver 링크 :https://www.selenium.dev/downloads/

chromeDriver 링크 :https://chromedriver.chromium.org/downloads

사용할 웹 드라이버를 다운후 파일이 있는 폴더에 넣어준다.

ie웹드라이버를 선택해준 모습

여기선 ie드라이버를 사용한다

driver = webdriver.Ie('E:\python\IEDriverServer.exe')

경로는 각자 환경에 맞게 설정해준다

그런뒤 각자 사용 환경에 맞게 웹 화면 크기를 정해준다

driver.set_window_size(1280, 720)

첫화면으로 시작할 사이트주소를 지정해준다

여기선 요즘하는 게임인 트리 오브 세이비어 페이지를 지정해줬다.

driver.get('http://tos.nexon.com/')

지정을 해준후 원하는 html요소를 찾는다

요소를 찾을 사이트에 들어간후 f12를 눌러 개발자 도구를 실행시켜

이버튼을 누른후 찾아야할 요소를 찾는다

이 소스에선 로그인을 해야하기 때문에 로그인 요소를 찾아준다

클릭을 하면

이런식으로 해당하는 태그를 찾아준다

여기서 찾아야 할건 해당하는 태그의 클래스명이다

btn large_btn login_btn Clr1등이 있지만 우리가 사용해야할건 login_btn이다

클래스 명을 따라가는 코드를 작성해준다

nx_login = driver.find_element_by_class_name("login_btn")

클래스명을 찾았으니까 클릭을 해주는 명령을 내려야 한다

nx_login.click()

이제 아이디, 비밀번호를 입력해야하는 페이지로 넘어간다.

여기서 이제 또 찾아야 할건 id를 입력하는 태그의 id와 비밀번호를 입력하는 태그의 id다.

위에 로그인 버튼 태그를 찾은것처럼

이 버튼을 눌러주고

아이디 입력칸, 패스워드 입력칸, 로그인버튼을 클릭

각각의 태그id를 찾아서 코드에 작성해준다

nx_id = driver.find_element_by_id('txtNexonID')
nx_pw = driver.find_element_by_id('txtPWD')
nx_submit = driver.find_element_by_id('btnLogin')

이제 아이디와 비밀번호를 입력해주자

while driver.get:
    nx_id.clear()
    nx_id.send_keys("")

    nx_pw.clear()
    nx_pw.send_keys("")

    nx_submit.click()
    break

비어있는 send_keys에 본인의 아이디, 비밀번호를 입력해주면 된다

로그인이 끝났으니 게임을 실행시켜줘야한다

똑같이 해당하는 태그를 찾아준다

여기서 사용해야할건 id="tmGameStart" 부분이다

gamestart = driver.find_element_by_id('tmGameStart')
gamestart.click()
driver.close()
driver.quit()

이로써 로그인과 게임실행까지 자동으로 해주는 스크립트를 완성한것이다.

매번 ide를 실행시켜 파이썬 스크립트를 실행하는것은 번거롭기 때문에 exe파일로 빌드를 해준다

먼저 파이썬 코드를 exe로 빌드시켜주는 pyinstaller라이브러리를 설치한다

pip install pyinstaller

설치를 한후

터미널 창에

pyinstaller -F -n 실행파일.exe 파이썬코드.py --noconsole

을 적어주고 엔터

필요에 따라 아이콘파일을 가져와 아이콘을 입혀줄수도 있다.

공부/오라클 2019. 5. 29. 20:55

테이블 만들기 예제 (2)

반응형

학생(student)테이블 구조

학번 성명 학과코드 학년 주소 이메일 핸드폰 생일 지도교수 코드
s_number s_name dept_code grade address email phone birth prof_code
number(7) varchar2(10) char(2) number varchar2(50) varchar2(20) char(13) char(8) char(2)
  not null   1 or 2 or 3   유일성 제약 null 허용    
PK   FK           FK

학생 테이블 생성

create table student

( s_number number(7) primary key,

  s_name varchar2(10) not null,

  dept_code char(2),

  grade number check(grade in(1,2,3),

  address varchar2(50),

  email varchar2(20) unique,

  phone char(13) null,

  birth char(8),

  prof_code char(2),

 

constraint s_dept_code_fk foreign key (dept_code) references department (dept_code) on delete cascade,

constraint s_prof_code_fk foreign key (prof_code) references professor (prof_code) on delete cascade);

'공부 > 오라클' 카테고리의 다른 글

테이블 만들기 예제(1)  (0) 2019.05.29
공부/오라클 2019. 5. 29. 20:22

테이블 만들기 예제(1)

반응형

학과(department) 테이블 구조  

학과코드 학과명
dept_code dept_name
char(2) varchar2(30)
PK not null

교수(professor) 테이블 구조

교수코드 교수이름
prof_code prof_name
char(2) varchar2(10)
PK not null

학과 테이블 생성

create table department

( dept_code char(2) primary key,

 dept_name varchar2(30) not null);

 

교수 테이블 생성

create table professor

( prof_code char(2) primary key,

 varchar2(10) not null);

'공부 > 오라클' 카테고리의 다른 글

테이블 만들기 예제 (2)  (0) 2019.05.29