Secret

[Python] 오토프로그램 만들기 (Python으로 Selenium사용) 본문

Naver 블로그/블로그

[Python] 오토프로그램 만들기 (Python으로 Selenium사용)

슴봄 2024. 4. 8. 22:36
반응형

웹 페이지에 자동으로 접속하여 값을 입력하는 매크로를 만들고 싶다면, Python에서 Selenium이나 BeautifulSoup 같은 라이브러리를 사용하는 것이 일반적인 방법입니다.

여기서는 Selenium을 사용한 예시를 들어 설명드리겠습니다.

Selenium을 사용하려면 먼저 Selenium 패키지와 웹 드라이버(Chrome, Firefox 등 사용하는 브라우저에 맞는 드라이버)를 설치해야 합니다.

1단계: Selenium 설치

 

pip install selenium

2단계: 웹 드라이버 설치

사용하는 브라우저의 최신 웹 드라이버를 다운로드합니다. Chrome의 경우, ChromeDriver를 다운로드하면 됩니다. 다운로드 후, 압축을 해제하고 실행 파일을 쉽게 접근할 수 있는 위치에 저장합니다.

크롬 드라이버 다운을 위해 크롬 정보를 확인합니다.

123.0.6312.106 버전으로 확인되었고

아래 주소에 접속해 버전을 검색해 줍니다.

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

새창으로 보기

반응형