Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 정규식으로 HTML 링크에서 URL 추출하는 방법

HTML 링크 태그에 포함된 URL을 추출해야 할 때 정규식(regular expression)을 활용하면 간단하게 처리할 수 있습니다. 파이썬의 re 모듈을 사용하면 몇 줄의 코드만으로 href 속성에 담긴 URL을 손쉽게 가져올 수 있습니다.

예제 코드

import re

s = '<a href="https://www.santa.com">산타 홈페이지</a>'
match = re.search(r'href=[\'"]? ([^\'" >]+)', s)
if match:
    print(match.group(0))

정규식 패턴 설명

위 코드에서 사용된 정규식 패턴을 하나씩 살펴보겠습니다.

  • href= — 문자열에서 'href='라는 부분을 찾습니다.
  • [\'"]? — 작은따옴표 또는 큰따옴표가 있을 수도, 없을 수도 있음을 의미합니다(속성값이 따옴표 없이 작성된 경우도 처리).
  • ([^\'" >]+) — 괄호로 묶인 캡처 그룹으로, 따옴표·공백·'>' 문자가 나타나기 전까지의 연속된 문자를 저장합니다. 이 부분이 바로 URL입니다.

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

href="https://www.santa.com"

URL만 깔끔하게 추출하기

match.group(0)은 매칭된 전체 문자열('href=...' 포함)을 반환합니다. 순수한 URL 값만 필요하다면 첫 번째 캡처 그룹인 match.group(1)을 사용하세요.

print(match.group(1))
# 출력: https://www.santa.com

참고: 더 안정적인 대안

정규식은 간단하고 규칙적인 HTML을 다룰 때 유용하지만, 실무에서는 구조가 복잡하거나 형식이 불완전한 HTML이 많습니다. 이런 경우 BeautifulSoup 같은 전용 HTML 파싱 라이브러리를 사용하는 것이 훨씬 안정적이고 유지보수에도 유리합니다.