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 파싱 라이브러리를 사용하는 것이 훨씬 안정적이고 유지보수에도 유리합니다.