일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 코딩테스트
- 경제뉴스
- 손에 잡히는 경제 요약
- 급등주 분석
- 경제뉴스 요약
- Programmers
- 급등주
- 알고리즘
- 손에 잡히는 경제
- boj
- 손경제 요약
- 주식
- 급등 이유
- 파이썬
- 경제
- Python
- 상한가
- 상한가 이유
- 이진우의 손에 잡히는 경제
- 주식 상한가
- 이진우
- 프로그래머스
- 테마주
- 자바
- 주식 분석
- java
- 백준
- 손경제
- 상한가 분석
- 코테
- Today
- Total
Completion over Perfection
Python(파이썬)으로 1to50 게임 2초대 기록하기 (2) 본문
Python(파이썬)으로 1to50 게임 2초대 기록하기 (2)
지난 글에서 1부터 50까지 빨리 누르기 게임을 2초대에 기록했다고 말씀을 드렸었는데요,
지난글 보러가기 : Python(파이썬)으로 1to50 게임 2초대 기록하기 (1)
페이지를 뜯어서 보다 보니 다음과 같은 규칙성이 있었습니다.
1번과 2번을 예시로 설명을 드려보겠습니다.
1번 숫자의 경우에는, 태그명이 다음과 같습니다.
<span class="box" style="z-index:99"></span>
그리고 2번 숫자의 태그명은 아래와 같죠.
<span class="box" style="z-index:98"></span>
눈치 채셨겠지만, z-index: 다음에 부여된 값에 따라 숫자가 1부터 50까지 정해져 있었습니다.
- 1번 : z-index:99
- 2번 : z-index:98
- 3번 : z-index:97
.
.
.
이런식으로 z-index 값이 정해져 있었습니다.
페이지 새로고침을 눌러도요.
이걸 알아냈다면, 이제 해야될일은 하나죠.
z-index 값에 넣을 변수(전 num으로 만들었습니다)를 하나 생성해서 거기에 초기 값을 99를 넣은다음에,
숫자를 하나 클릭해주고 num을 -1한 값을 다시 넣고, 다시 클릭해주고.. 이런식으로 구현을 하면 될 것 같습니다.
실제로 해봤더니 잘 작동합니다.
아래는 제가 작성한 코드입니다.
indexlist = [] → 클릭할 element를 넣어줄 리스트를 생성한다.
num = 99 → 초기값을 99로 넣어준다.
for j in range(2): → for문을 2번 돈다. (1부터 25 다 클릭하고 나서 26부터 50까지)
for i in range(25): → 1부터 25 또는 26부터 50까지 클릭하겠다.
indexlist.append(driver.find_element_by_css_selector('span[style="z-index:{}"]'.format(num)))
num-=1
for i in range(25):
indexlist[i].click() → 리스트에 있는 애들을 하나씩 꺼내서 클릭해라
indexlist = [] → 1~25 클릭이 끝난 뒤 26~50 element를 클릭하기 위해 리스트 초기화
Chrome headless로 하면 미세하게나마 기록이 나아지긴 했지만, 큰 차이는 없었습니다. (0.2~0.3초 정도 빨라짐)
그럼 이만 포스팅을 마칠게요~
'파이썬 (Python)' 카테고리의 다른 글
파이썬(Python)으로 로또 매일 1개씩 자동구매하기 (1탄 - 기획하기) (2) | 2020.06.02 |
---|---|
Python(파이썬) 중괄호('{}')가 이미 포함된 문자열 포맷팅 방법 (1) | 2020.05.24 |
파이썬(Python) Selenium webdriver가 실행되지 않을 때 (8) | 2020.05.12 |
Python(파이썬)으로 1to50 게임 2초대 기록하기 (1) (0) | 2020.04.27 |
Python(파이썬) 웹 크롤링 - 인스타그램 레이어팝업(dialog box, 다이얼로그 박스) 크롤링 하기! (2) | 2020.04.06 |