Secret
[Python] 오토프로그램 만들기 (Python으로 Selenium사용) 본문
웹 페이지에 자동으로 접속하여 값을 입력하는 매크로를 만들고 싶다면, Python에서 Selenium이나 BeautifulSoup 같은 라이브러리를 사용하는 것이 일반적인 방법입니다.
여기서는 Selenium을 사용한 예시를 들어 설명드리겠습니다.
Selenium을 사용하려면 먼저 Selenium 패키지와 웹 드라이버(Chrome, Firefox 등 사용하는 브라우저에 맞는 드라이버)를 설치해야 합니다.
pip install selenium
2단계: 웹 드라이버 설치
사용하는 브라우저의 최신 웹 드라이버를 다운로드합니다. Chrome의 경우, ChromeDriver를 다운로드하면 됩니다. 다운로드 후, 압축을 해제하고 실행 파일을 쉽게 접근할 수 있는 위치에 저장합니다.
크롬 드라이버 다운을 위해 크롬 정보를 확인합니다.


123.0.6312.106 버전으로 확인되었고
아래 주소에 접속해 버전을 검색해 줍니다.
https://github.com/GoogleChromeLabs/chrome-for-testing/blob/main/data/latest-versions-per-milestone-with-downloads.json

url을 복사해 붙여넣으면 다운이 이루어집니다.
106으로 끝나는 버전이 확인되지 않아 105버전으로 다운 받았습니다.

전 동일한 프로젝트 위치에 넣어줬습니다.
3단계: Selenium을 사용한 자동 입력 코드 예시
아래는 Selenium을 사용해 웹 페이지에 접속하여 특정 입력 필드에 값을 입력하고, 버튼을 클릭하는 기본적인 Python 코드 예시입니다. 이 예시에서는 Google의 검색 필드에 'Kiwi'를 입력하고 검색을 실행하는 과정을 보여줍니다.
# 예시
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
# 웹 드라이버의 경로 설정
driver_path = '여기에_드라이버_경로를_입력하세요'
driver = webdriver.Chrome(executable_path=driver_path)
# 열고자 하는 웹 페이지 URL
driver.get("http://www.google.com")
# 웹 페이지에서 요소 찾기 (여기서는 Google 검색 입력 필드)
input_element = driver.find_element("name", "q")
# 찾은 요소에 값 입력
input_element.send_keys("Selenium")
# 엔터키를 눌러 검색 실행
input_element.send_keys(Keys.ENTER)
참고 구글 사이트 검색어 표시에 사용되는 매개변수(q, s, search, query, keyword)
# 실사용 코드
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
# 웹 드라이버의 경로 설정
driver_path = r'D:\util\vsworkspace\autowrite\chromedriver-win64\chromedriver.exe'
driver = webdriver.Chrome(executable_path=driver_path)
# 열고자 하는 웹 페이지 URL
driver.get("http://www.google.com")
# 웹 페이지에서 요소 찾기 (여기서는 Google 검색 입력 필드)
# 구글 홈페이지에서는 검색 입력 필드의 이름이 "q"로 지정되어 있습니다.
input_element = driver.find_element("name", "q")
# 찾은 요소에 값 입력
input_element.send_keys("Kiwi")
# 엔터키를 눌러 검색 실행
input_element.send_keys(Keys.ENTER)
경로에서 'r' 접두어는 raw string을 나타내며, 이를 사용하면 경로에 포함된 이스케이프 문자를 해석하지 않습니다.

실행결과

"Kiwi"를 입력해 검색까지 실행하게 된다.
4단계: Selenium의 WebDriver API에서 사용되는 By 클래스를 사용해 검색된 내용의 이미지 클릭하기
from selenium.webdriver.common.by import By
import time
# 결과 페이지가 로드되기를 기다림
time.sleep(2)
# 검색 결과 페이지에서 '이미지' 탭 클릭하기 By.LINK_TEXT: 링크 텍스트를 사용하여 링크 요소를 식별합니다
# 이 부분은 실제 웹사이트에서 원하는 버튼의 요소를 찾아서 적용해야 합니다.
# 예를 들어, 이미지 탭을 클릭하고자 한다면 다음과 같이 할 수 있습니다.
images_link = driver.find_element(By.LINK_TEXT, "이미지")
images_link.click()
위 내용을 추가해 줍니다.
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
import time
# 웹 드라이버의 경로 설정
driver_path = r'D:\util\vsworkspace\autowrite\chromedriver-win64\chromedriver.exe'
driver = webdriver.Chrome(executable_path=driver_path)
# 열고자 하는 웹 페이지 URL
driver.get("http://www.google.com")
# 웹 페이지에서 요소 찾기 (여기서는 Google 검색 입력 필드)
input_element = driver.find_element("name", "q")
# 찾은 요소에 값 입력
input_element.send_keys("Kiwi")
# 엔터키를 눌러 검색 실행
input_element.send_keys(Keys.ENTER)
# 결과 페이지가 로드되기를 기다림
time.sleep(2)
# 검색 결과 페이지에서 '이미지' 탭 클릭하기 By.LINK_TEXT: 링크 텍스트를 사용하여 링크 요소를 식별합니다
# 이 부분은 실제 웹사이트에서 원하는 버튼의 요소를 찾아서 적용해야 합니다.
# 예를 들어, 이미지 탭을 클릭하고자 한다면 다음과 같이 할 수 있습니다.
images_link = driver.find_element(By.LINK_TEXT, "이미지")
images_link.click()
실행결과

"Kiwi"를 검색하고 이미지 탭까지 접속하게 되었습니다.
# 원하는 작업 이후
# 작업 완료 후 브라우저 닫기
driver.close()
를 추가해주면 실행된 창까지 꺼주게 됩니다.
https://m.blog.naver.com/10hsb04/223409776087
새창으로 보기
'Naver 블로그 > 블로그' 카테고리의 다른 글
과연 조선시대 손발톱 잘랐을까? (0) | 2024.04.10 |
---|---|
[크롬 개발자도구] COPY 옵션 (0) | 2024.04.08 |
네이버 레이아웃 꾸미기2(투명 위젯 링크걸기) (0) | 2024.04.07 |
[HTML] 이미지맵 만들기(쉽게 좌표 확인) (0) | 2024.04.07 |
대전 테미공원 벚꽃 개화현황(24.04.05) (0) | 2024.04.07 |