Python/Crawling

셀레니움 h1, strong 등 HTML 태그 적용 텍스트 삽입 방법 예제

jimmy_AI 2023. 9. 26. 00:15
반응형

파이썬의 selenium을 활용하여 텍스트를 입력하는 과정에서

h1이나 strong과 같은 HTML 태그가 적용된 텍스트로 입력을 원하는 경우가 있습니다.

 

이 글에서는 원하는 HTML 양식이 적용된 텍스트를 넣는 방법을 간략하게 정리해 보겠습니다.

 

 

참고: 셀레니움 기본 텍스트 입력 코드 예제

셀레니움에서는 일반적으로 find_element 등 메서드로 원하는 위치를 찾은 뒤에

send_keys 메서드를 활용하여 텍스트를 입력하게 됩니다.

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

txt_box = driver.find_element(By.NAME, 'txt_box_name') # 텍스트 입력 박스 탐색
txt_box.send_keys('제목예시 본문예시') # 텍스트 입력

 

위의 코드 예시로 텍스트를 입력하면 기본 양식으로 '제목예시 본문예시'라는

텍스트가 입력된 것을 확인할 수 있습니다.

 

 

HTML 태그가 적용된 텍스트 입력 코드 예제

만일 위의 예시에서 '제목예시' 부분에 h1과 strong 태그가 포함된 양식으로

텍스트 자동 입력을 수행하고 싶다면 어떻게 하면 좋을까요?

 

이런 경우에는 아래 코드처럼 HTML 삽입 자바스크립트 코드를 execute_script 메서드

원하는 양식 적용을 시도해볼 수 있습니다.

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

txt_box = driver.find_element(By.NAME, 'txt_box_name') # 텍스트 입력 박스 탐색
txt_box.send_keys('제목예시 본문예시') # 텍스트 입력

# h1과 strong 태그를 포함하는 예시
script = "var text = arguments[0]; \
          var mystyle = '<h1><strong>' + text + '</strong></h1>'; \
          arguments[1].innerHTML = arguments[1].innerHTML.replace(text, mystyle);"

# '제목예시'라는 텍스트 부분을 인식하여 위에서 지정한 스타일 삽입
text_to_style = '제목예시'
element_to_style = driver.find_element(By.NAME, 'txt_box_name')

driver.execute_script(script, text_to_style, element_to_style)

 

위의 예시처럼 script 파트에서 원하는 양식을 지정해준 뒤,
execute_script 메서드에서 특정 텍스트를 인식하는 원리로 HTML 양식 적용이 가능합니다.