셀레늄 pyautogui 마우스 자동화 선택 상자 관련 이미지

셀레늄 pyautogui 마우스 자동화 선택 상자

저는 3개월 동안 코딩을 배웠습니다.

Python Selenium을 통해 홈페이지에 접속하여 로그인 후 각종 종류 선택 또는 클릭, 엑셀 다운로드 등

구글링, 연습, 운동, 샤워, 이걸 해야 하나 저것을 해야 하나?

대부분의 작업은 이미 자동화되었습니다.

코딩을 처음 배우는 지점에 도달했습니다.

본업이 코딩이 아니라서 이 사람들을 계속 쓰지 않는다면?가끔 이게 저것인지 헷갈릴 때가 있어

그러면 이해가 되겠지만 왜 안 될까요?

Selenium으로 작업할 때 마우스 클릭이 아닌 동적 페이지나 마우스 오버(마우스 커서)에 메뉴가 나타나는 경우가 있습니다.

이렇게 하면 자동으로 마우스를 이동하고 거기에 놓고 find_element를 통해 찾을 수 있습니다.


셀레늄 pyautogui 마우스 자동화 선택 상자 관련 대표 이미지
cCSS :호버 선택기 효과

https://www.w3schools.com/cssref/tryit.php?filename=trycss_sel_hover_dropdown

W3Schools 온라인 HTML 편집기

W3Schools 온라인 코드 편집기를 사용하면 브라우저에서 코드를 편집하고 결과를 볼 수 있습니다.

www.w3schools.com

자세한 내용은 w3schools 웹 사이트를 방문하십시오. 예가 있습니다. 참조하십시오…

과거에는 마우스 오버 효과가 많이 사용되었으나 최근에는 드물다.

하지만 셀레늄을 하기 위해서는 코드를 분석하고 작성해야 합니다.

간단한 마우스 자동화를 시도해 봅시다.

자주찾는 홈페이지 오피넷 (내 주변 저렴한 주유소)

주유하기 전에 항상 인터넷으로 근처 싼 주유소를 검색해서 가는 습관이 생겼습니다. . .

https://www.opinet.co.kr/user/main/mainView.do

Opinet에서 저렴한 주유소 찾기

www.opinet.co.kr

오피넷 홈페이지에 가시면 w3schools에서 보던 마우스오버 효과를 보실 수 있습니다.


셀레늄 pyautogui 마우스 자동화 선택 상자 관련 이미지
마우스오버 시 메뉴바가 나타납니다…

마우스를 자동화하려면 내가 보고 있는 디스플레이에서 마우스의 x축과 y축 좌표를 알아야 합니다.

간단히 말해 move x=100 및 move y=100이라고 하면 마우스 커서가 자동으로 그곳으로 이동합니다.

마우스 자동화용

pyautogui

사용하려면 라이브러리를 설치해야 합니다.

pip install pyautogui

그리고 앞서 언급한 x축과 y축은 어떻게 알 수 있을까요? ? ? ? ? ? 의심이 생깁니다.

마우스 자동화를 위한 x축 y축 좌표


셀레늄 pyautogui 마우스 자동화 선택 상자 관련 이미지
마우스 좌표 등을 찾는 도구

방법도 매우 간단합니다.

#라이브러리 불러오기
import pyautogui


pyautogui.mouseInfo()

할 수 있다……! ! ! ! ! ! !

오류가 발생합니다.

PS D:\code\python> & D:/python/python.exe d:/code/python/example/pyautogui.py
Traceback (most recent call last):
  File "d:\code\python\example\pyautogui.py", line 2, in <module>
    import pyautogui
    ^^^^^^^^^^^^^^^^^^^
AttributeError: partially initialized module 'pyautogui' has no attribute 'mouseInfo' (most likely due to a circular import)


셀레늄 pyautogui 마우스 자동화 선택 상자 관련 이미지

AttributeError: 부분적으로 초기화된 모듈 ‘pyautogui’에 ‘mouseInfo’ 속성이 없습니다(대부분 순환 가져오기 때문일 가능성이 높음).

문제를 풀다

https://pypi.org/project/MouseInfo/

마우스 정보

현재 마우스 아래에 있는 픽셀의 XY 위치 및 RGB 색상 정보를 표시하는 응용 프로그램입니다. Python 2 및 3에서 작동합니다.

pypi.org

pip install mouseinfo

터미널에 설치되면 다음과 같이 변경할 수 있습니다.

#라이브러리 불러오기
import mouseinfo

mouseinfo.mouseInfo()


셀레늄 pyautogui 마우스 자동화 선택 상자 관련 이미지
mouseinfo 0.1.3 정상 실행

솔직히 이유를 모르겠습니다.

Python 버전이 지원되지 않거나 라이브러리가 업데이트되고 실행 명령이 변경되는 경우가 있습니다.

이제 연습을 위해 Opinet에 연결해 보겠습니다.

좌표를 얻으려면 mouseinfo 0.1.3 창이 실행 중이어야 합니다.


셀레늄 pyautogui 마우스 자동화 선택 상자 관련 이미지

저렴한 주유소 찾기에 마우스를 올리면 mouseinfo 0.1.3을 통해 마우스 x,y 값을 표시합니다. X = 416 , Y = 113


셀레늄 pyautogui 마우스 자동화 선택 상자 관련 이미지

바로 아래 영역의 하위 메뉴 위로 마우스를 가져가면 마우스 x 및 y 값이 동일하게 나타남 X = 381 , Y = 185

이제 코딩을 시작해 볼까요?

마우스 자동화를 수행하려면 입력 라이브러리를 가져와서 사용 방법을 알아야 합니다.

pyautogui.moveTo(마우스 X축 값, 마우스 Y축 값, 마우스 커서 체류 시간(초))

pyautogui.moveTo(401 , 113 , 5)		#(X축좌표, Y축좌표, second)

이렇게 사용할 수 있습니다.

이제 라이브러리를 로드하고 코딩하기만 하면 됩니다.

#라이브러리 불러오기
import pyautogui
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service
import time



#driver = webdriver.Chrome() # 현재파일과 동일한 경로일 경우 생략 가능
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
driver.maximize_window()

baseurl="https://www.opinet.co.kr/user/main/mainView.do"


#사이트 이동(지역별)
driver.get(baseurl)

#지역별 옵션으로 가기위함 마우스자동화
pyautogui.moveTo(416, 113,5) #오피넷 싼 주유소 찾기 마우스 좌표로 이동
time.sleep(5)
pyautogui.moveTo(381, 185,5) #지역별로 이동
time.sleep(2)
pyautogui.click()	#마우스자동화된곳 클릭
time.sleep(10)		#페이지 이동 되었는지 대기시간을 10초

작성하고 실행하면 됩니다. 달려라~~

이런… 문제가 있습니다.

우리가 보통 크롬 브라우저를 실행할 때 찾는 좌표는 브라우저가 Selenium을 실행할 때 찾는 좌표와 조금 다릅니다.

Selenium을 사용할 때 항상 나타나는 자동화 창


셀레늄 pyautogui 마우스 자동화 선택 상자 관련 이미지
Selenium을 실행할 때 항상 제어의 아이디어를 따르십시오 …

일반 셀레늄은 전혀 문제가 되지 않습니다.

x축과 y축을 사용하는 경우에만 이 창에서 밀어냅니다.

x축에는 큰 문제가 없지만 저 자동화된 제어 주석 때문에 다시 y축을 보려면 약간 아래로 내려가야 합니다.

#지역별 옵션으로 가기위함 마우스자동화
pyautogui.moveTo(416, 146 , 5) #오피넷 싼 주유소 찾기 마우스 좌표로 이동
time.sleep(5)
pyautogui.moveTo(381, 216 , 5) #지역별로 이동

싼 주유소 메뉴와 지역 하위 메뉴는 y축에 약 310,000개 있습니다.

영역 하위 메뉴에서 pyautogui.click()은 이러한 클릭 명령을 제공하므로 마지막으로 클릭하여

페이지가 이동하는 것을 볼 수 있습니다.


셀레늄 pyautogui 마우스 자동화 선택 상자 관련 이미지
지역별 페이지

파이썬 셀레늄 선택 상자

지역 페이지로 이동하면 아래와 같이 지역을 선택할 수 있는 선택 박스가 나타납니다.

그런 다음 원하는 값을 선택할 수 있도록 선택 상자를 갤러리에 넣습니다.

from selenium.webdriver.support.ui import Select

이거 추가 해봐.

홈 페이지의 선택 상자와 값이 어떻게 생겼는지 분석해 봅시다.

F12를 누르면…


셀레늄 pyautogui 마우스 자동화 선택 상자 관련 이미지

서울, 부산, 대구를 선택하여 지역 선택 시 시/도를 우선시할 수 있도록 하였습니다.

가치 가치 서울광역시 부산광역시 대구광역시 이렇습니다.

그렇다면 특수도시와 메가시티에 모든 가치를 두어야 한다!

다음 선택 상자도 같은 방식으로 값을 분석합니다…


셀레늄 pyautogui 마우스 자동화 선택 상자 관련 이미지

city/county/town 값은 선택한 텍스트와 동일합니다.

#지역 시/도 선택 (지역별주유소 셀렉트박스#1)
dropdown = Select(driver.find_element(By.XPATH, '//*(@id="SIDO_NM0")'))
dropdown.select_by_value("서울특별시")
time.sleep(2)

#지역 시/군/구 선택 (지역별주유소 셀렉트박스#2)
dropdown = Select(driver.find_element(By.XPATH, '//*(@id="SIGUNGU_NM0")'))
dropdown.select_by_value("강남구")
time.sleep(2)

선택창에서 첫 번째 “서울시”를 선택한 후 “강남구”를 선택하세요! ! (서울에 몇 번 안 가봤는데.. ㅋㅋ)

그리고 검색을 누르셔야 오피넷에서 시/도 또는 시/군/구를 선택하시면 자동으로 검색됩니다.

그래도 모르면 검색버튼을 누르게 만든다.

일반적으로 버튼이나 찾아야 할 곳에 마우스 오른쪽 버튼을 클릭하고 검사를 클릭하면 자동으로 f12 개발자 모드를 찾습니다.

Chrome DevTools – 페이지에서 요소를 선택하여 검사


셀레늄 pyautogui 마우스 자동화 선택 상자 관련 이미지
홈페이지 html을 알고 싶을 때 사용하기 쉬운 체크버튼

Opinet과 같은 금지 사이트를 마우스 오른쪽 버튼으로 클릭하고 F12를 누릅니다.

Chrome 개발자 도구 – 페이지에서 검사할 요소를 선택합니다.


셀레늄 pyautogui 마우스 자동화 선택 상자 관련 이미지
Chrome DevTools – 페이지에서 요소를 선택하여 검사

셀레늄 pyautogui 마우스 자동화 선택 상자 관련 이미지
Chrome 개발자 도구 – 요소 검사를 사용하면 쉽게 할 수 있습니다.

검색 후 드디어 다운로드한 파일을 엑셀로 저장할 수 있게 되었습니다.

하단에 “Excel 저장”이라는 버튼이 있습니다.

또한 개발자 도구 요소 검사를 사용하여 XPath를 복사하십시오.


셀레늄 pyautogui 마우스 자동화 선택 상자 관련 이미지
엑셀 저장 XPath

중복 메뉴를 보시면 중복이 많이 보이실 겁니다. 이제 XPath

일반적으로 셀레늄 또는 bs4(크롤링)와 함께 사용됩니다.

요소가 무엇이고 XPath가 무엇인지는 설명하지 않겠습니다.

이런 종류의 이론을 수행하면 코딩에 대한 관심이 갑자기 떨어질 것입니다. 그 사람들을 사용하고 결과부터 시작하십시오 … 왜 재미있습니까!

다음은 최종 코드입니다.

###########################################################################################################################
#오피넷(주유소) 사이트 접속해서 해당지역 최저가 엑셀다운로드
###########################################################################################################################
#라이브러리 불러오기
import pyautogui
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service
import time

#driver 지정 없으면 자동설치
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
driver.maximize_window()

#홈페이지주소
baseurl="https://www.opinet.co.kr/user/main/mainView.do"


#사이트 이동(지역별)
driver.get(baseurl)

#지역별 옵션으로 가기위함 마우스자동화
pyautogui.moveTo(416, 146,5) #오피넷 싼 주유소 찾기 마우스 좌표로 이동
time.sleep(5)
pyautogui.moveTo(381, 216,5) #지역별로 이동
time.sleep(2)
pyautogui.click()	#마우스자동화된곳 클릭
time.sleep(3)


#지역 시/도 선택 (지역별주유소 셀렉트박스#1)
dropdown = Select(driver.find_element(By.XPATH, '//*(@id="SIDO_NM0")'))
dropdown.select_by_value("서울특별시")
time.sleep(2)

#지역 시/군/구 선택 (지역별주유소 셀렉트박스#2)
dropdown = Select(driver.find_element(By.XPATH, '//*(@id="SIGUNGU_NM0")'))
dropdown.select_by_value("강남구")
time.sleep(2)

#상단 지역별 선택 후 조회버튼클릭
driver.find_element(By.XPATH, '//*(@id="searRgSelect")').click()
time.sleep(2)

#보통휘발유 선택 (기본값이라 생략가능)
driver.find_element(By.XPATH, '//*(@id="os_layer2")/p/a').click()
time.sleep(2)

#엑셀파일 저장
driver.find_element(By.XPATH, '//*(@id="glopopd_excel")').click()
time.sleep(5)

#브라우저 종료(닫기)
driver.quit()

Similar Posts

  • 아동학대 전담 공무원 1명 없는 지자체 45%…●학대 피해아동 갈 곳도 없다

    아동학대 전담 공무원 1명 없는 지자체 45%…●학대 피해아동 갈 곳도 없다아동학대 전담 공무원 1명도 없는 지자체의 45%…학대 피해아동 갈 곳도 없다|더인디고정식인이 사건 대책으로 정부가 전국 시군구 아동학대 전담 공무원 배치 계획을 발표했지만 정작 현실과 괴리된 인력 기준으로 실효성에 의문이 제기되고 있다. 또 학대받은 아동을 보호하는 학대피해아동쉼터와 아동보호전문기관 확충 등은 정부 목표치에 미달한다는 지적이다.theindigo.co.kr지난해 양천구 입양…

  • 구글홈미니 신청으로 스마트한 생활 시작하기

    스마트 스피커가 일상생활에 점점 더 많은 영향을 미치고 있는 요즘, 구글홈미니 신청을 통해 나만의 스마트 홈 환경을 구축해보세요. 구글홈미니는 다기능을 갖춘 음성 인식 스피커로, 음악 재생, 스마트 기기 제어, 정보 검색 등 다양한 기능을 제공합니다. 구글홈미니의 주요 기능 1. 음악 재생과 음성 제어 구글홈미니는 사용자의 목소리로 음악을 재생하며, 여러 음원 스트리밍 서비스를 지원합니다. 예를 들어,…

  • 청소 집착의 정의와 제거 방법

    청결의 정의와 처리 강박 청소 또는 OCD는 지속적이고 거슬리는 생각, 이미지 또는 불안을 유발하는 충동, 반복적인 행동 또는 불안을 줄이기 위해 고안된 정신적 행동을 특징으로 하는 정신 건강 상태입니다. 청소 의무화의 경우 사람들은 세균, 오염, 먼지에 대한 극도의 두려움을 가질 수 있으며, 불안을 줄이기 위해 의무 청소나 손 씻기 의식을 수행할 수 있습니다. 강제 청소에…

  • 사과의 장점

    사과는 많은 건강상의 이점이 있어 널리 소비되는 과일입니다. 다음은 사과가 건강에 좋은 몇 가지 방법입니다. 1. 높은 섬유: 사과는 용해성 및 불용성 섬유질의 훌륭한 공급원입니다. 수용성 섬유질은 콜레스테롤 수치를 낮추고 혈당을 조절하는 데 도움이 되는 반면, 불용성 섬유질은 소화를 돕고 규칙적인 배변을 촉진합니다. 사과를 정기적으로 먹으면 소화기 건강을 개선하고 심장병 및 당뇨병과 같은 만성 질환의…

  • 서리태 부작용 알기

    서리태 부작용 알기 일반적으로 다크푸드는 생김새부터 다르고 영양도 풍부해 단독 블랙푸드로 분류된다.. 이번에 소개할 서리태 역시 블랙푸드에 해당하는데, 영양학적 효능이 뛰어나 블랙푸드로 분류된다.. 약콩으로도 알려진 서리태는 그 별칭만큼이나 효능이 많은데, 이번 글에서는 서리태의 효능과 부작용에 대해 알아보도록 하겠습니다.. 하나. 탈모 예방 서리태는 발모와 탈모를 예방하는 효능이 있는 것으로 알려져 있다., 베타–스테롤, 시스테인 등이 다량 함유되어…

  • 2023년 공무원 시험 각 직종별 일정(7급, 9급, 국가직, 지방직)

    2023년 지방직, 국가직 등 각종 공무원 시험 일정을 알아보겠습니다. 7, 8, 9급, 경찰 및 소방공무원, 군공무원 등의 시험일정을 반영합니다. 기타 일정 및 월별 일정(달력)도 조회할 수 있습니다. ㅣ직종별 시험일정 전국 우편 4월 8일(토) 9학년 손글씨 6달 14하늘(숫자)~19하늘(달) 9수업 인터뷰 7달 스물 둘하늘(토요일) 7수업 PSAT 시험 9달 이십 삼하늘(토요일) 7필적 11달 이십 일하늘(화) ~ 24하늘(금) 7수업…