웹 개발/웹 개발 기초

선택자란?

Blue_bull 2025. 1. 27. 13:44

선택자(Selector)란?

선택자(Selector)는 HTML 문서에서 특정 요소를 찾아내거나 조작하기 위해 사용하는 규칙입니다. 주로 CSS, JavaScript 라이브러리(jQuery 등), 그리고 웹 크롤링 도구에서 사용됩니다. 선택자를 잘 이해하면 웹 요소를 효율적으로 접근하거나 제어할 수 있습니다.


선택자가 중요한 이유

  1. 스타일 적용 (CSS)

    • 선택자를 사용해 특정 HTML 요소에 스타일을 지정할 수 있습니다.

    • 예:

      p { color: blue; } /* 모든 <p> 태그에 파란색 적용 */
  2. 동적 조작 (jQuery 등 JavaScript)

    • 선택자를 사용해 DOM(Document Object Model) 요소를 동적으로 조작할 수 있습니다.

    • 예 (jQuery):

      $("p").text("새로운 텍스트"); // 모든 <p> 태그의 텍스트 변경
  3. 데이터 수집 (Python 웹 크롤링)

    • Python의 BeautifulSoup이나 Selenium에서 선택자를 활용해 특정 데이터를 추출할 수 있습니다.

    • 예 (BeautifulSoup):

      from bs4 import BeautifulSoup
      soup = BeautifulSoup(html_content, 'html.parser')
      titles = soup.select('h1.title') # <h1 class="title"> 요소 선택

주요 선택자 유형

선택자 유형 설명 예제
전체 선택자 모든 요소 선택 *
태그 선택자 특정 태그 선택 p, div, h1
클래스 선택자 특정 클래스가 적용된 요소 선택 .className
ID 선택자 특정 ID를 가진 요소 선택 #idName
속성 선택자 특정 속성을 가진 요소 선택 [type="text"], [href^="https://"]
자식 선택자 특정 요소의 자식 요소 선택 div > p (div의 직접적인 자식 p 태그)
후손 선택자 특정 요소의 모든 하위 요소 선택 div p (div 안에 있는 모든 p 태그)
가상 클래스 상태에 따라 특정 요소 선택 a:hover, input:checked
가상 요소 요소의 특정 부분 선택 p::before, p::after

jQuery에서의 선택자 사용

jQuery는 CSS 선택자와 동일한 문법을 사용해 DOM 요소를 선택합니다.

  • 예제:
  • // 모든 <p> 태그 선택 $("p").css("color", "blue"); // 특정 ID를 가진 요소 선택 $("#header").hide(); // 특정 클래스가 적용된 요소 선택 $(".highlight").addClass("active");

Python 크롤링에서 선택자 사용

Python에서 BeautifulSoup이나 Selenium 라이브러리는 선택자를 사용해 HTML 요소를 탐색합니다.

  • BeautifulSoup의 select() 메서드: CSS 선택자를 지원합니다.
  • from bs4 import BeautifulSoup html = '<div><p class="text">Hello World</p></div>' soup = BeautifulSoup(html, 'html.parser') # 클래스가 'text'인 <p> 태그 선택 element = soup.select('.text') print(element[0].text) # 출력: Hello World
  • Selenium의 선택자 사용:
    Selenium에서도 CSS 선택자를 활용해 요소를 찾습니다.
  • from selenium import webdriver driver = webdriver.Chrome() driver.get('https://example.com') # ID가 'header'인 요소 찾기 header = driver.find_element('css selector', '#header') print(header.text)

CSS, jQuery, 크롤링에서 선택자의 일관성

CSS에서 사용하는 선택자는 jQueryPython 크롤링 도구(BeautifulSoup, Selenium)에서도 동일하게 적용됩니다. 이는 개발자가 한 번 선택자를 이해하면 다양한 작업(스타일링, 동적 조작, 데이터 추출)에서 일관되게 사용할 수 있다는 점에서 매우 중요합니다.


결론

  • 선택자는 HTML 문서의 요소를 효율적으로 찾고 조작하기 위한 핵심 도구입니다.
  • CSS 스타일링, jQuery DOM 조작, Python 크롤링에서 모두 동일한 선택자 문법을 활용할 수 있어 작업 간 일관성을 제공합니다.
  • 선택자를 잘 이해하면 웹 개발, 테스트, 데이터 수집 작업에서 큰 효율성을 얻을 수 있습니다.

'웹 개발 > 웹 개발 기초' 카테고리의 다른 글

JavaScript 기초 또는 jQuery 기본 사용법  (0) 2025.01.27
CSS와 HTML의 선택자 및 스타일링 규칙  (0) 2025.01.27
시퀀스란?  (0) 2025.01.27
HTML - 특수문자  (0) 2025.01.27
HTML - 화이트 캐릭터  (0) 2025.01.27