안 쓰던 블로그

파이썬-selenium으로 웹 매크로 만들기 본문

언어/파이썬

파이썬-selenium으로 웹 매크로 만들기

proqk 2020. 6. 7. 14:17
반응형

파이썬 크롤링 시리즈

네이버 웹툰 이미지 크롤링, 저장하기: foxtrotin.tistory.com/173

셀레니움으로 웹 게임 자동 매크로 만들기: 현재글

네이버 실시간 검색어 가져오기: foxtrotin.tistory.com/267

네이버 웹툰 요일별 크롤링: foxtrotin.tistory.com/328


selenium이란?

웹 애플리케이션을 위한 테스팅 프레임워크. 자동화 테스트를 위한 여러가지 기능을 제공함

 

https://zzzscore.com/1to50/

1~50을 클릭하는 이 게임 매크로를 만들어 볼 것

 

 

1. Selenium 설치

파이썬 설치 폴더-scripts-cmd키고 pip install selenium

안 되면 참고 https://foxtrotin.tistory.com/172

 

VS 파이썬 unresolved import warning 해결 방법 - Visual Studio에서 Python 모듈 설치하기

아니 분명히 잘 설치되어 있는데 VS만 들어가면 모듈 인식을 못해서 에러가 남 cmd에서 확인했을 때는 깔려있음 찾아보니까 VS에서 모듈을 불러오는 과정이 좀 다르다고 하는 것 같음 VS 내에서 다

foxtrotin.tistory.com

 

2. 크롬 버전 확인하기

크롬-도움말-크롬 정보

버전 83.0.4103이다

 

 

3. 크롬 드라이버 설치

https://sites.google.com/a/chromium.org/chromedriver/downloads

 

나는 82.0.4103의 윈도우 환경이니까 win32 다운받음

다운로드 받고 설치한 경로를 기억하기

 

 

4. 코딩

from selenium import webdriver

driver=webdriver.Chrome('/chromedriver_win32/chromedriver.exe') #크롬 드라이버

크롬 드라이버를 연결한다

아까 다운로드 받은 경로를 그대로 적는다

 

driver.get('https://zzzscore.com/1to50/') #접속할 url

매크로를 돌릴 페이지를 띄운다

 

def autoClick():
    cnt = 1

    while cnt <= 50:
        btns= driver.find_elements_by_xpath('//*[@id="grid"]/div[*]')

버튼 좌표를 넣어준다

좌표 확인은 이렇게 한다

id=gird인 클래스에서 div를 전부 가져옴

 

만약 이런 버튼이면?

btns= driver.find_elements_by_xpath('//*[@id="search_btn"]/span[2]') #버튼 좌표

이런 좌표를 가져오면 된다

 

        for btn in btns:
            if btn.text == str(cnt):
                btn.click()
                print("number "+str(cnt)+"clicked!")
                cnt+=1
                break

autoClick()

버튼 50개가 담긴 btns를 하나씩 돌면서

cnt와 버튼의 텍스트가 같은 경우(버튼을 찾음) 버튼을 클릭한다

cnt+=1해주고 클릭한 버튼은 더 이상 탐색할 필요 없으니 break

 

 

전체 코드

from selenium import webdriver

driver=webdriver.Chrome('/chromedriver_win32/chromedriver.exe') #크롬 드라이버
driver.get('http://zzzscore.com/1to50') #접속할 url


def autoClick():
    cnt = 1

    while cnt <= 50:
        btns= driver.find_elements_by_xpath('//*[@id="grid"]/div[*]')

        for btn in btns:
            if btn.text == str(cnt):
                btn.click()
                print("number "+str(cnt)+"clicked!")
                cnt+=1
                break

autoClick()

 

https://github.com/proqk/SWINGstudy/blob/master/python/webAutoClick.py

 

proqk/SWINGstudy

학회 스터디. Contribute to proqk/SWINGstudy development by creating an account on GitHub.

github.com

 

7.701초 상위 0.1% 클라스

반응형
Comments