URL은 파싱하기 전에는 단순한 문자열 덩어리일 뿐이다. 파이썬에서 URL Parsing을 통해 문자열로 된 URL을 의미 있는 정보로 구조화하여 도메인, 경로, 쿼리 파라미터 등을 추출할 수 있다. 이를 통해 웹 요청을 분석하거나 URL을 쉽게 다룰 수 있다.
urlparse() 함수는 URL을 다양한 구성 요소로 분리하여 구조화된 객체로 변환한다. 변환된 객체는 URL의 주요 구성 요소인 도메인(domain), 경로(path), 그리고 쿼리 파라미터(query parameters)를 추출하는 데 유용하다.
from urllib.parse import urlparse, parse_qs
import pandas as pd
def parsing_url(url):
# parsing을 통해 URL을 구조화된 객체로 변환
parsed_url = urlparse(url)
# 도메인을 netloc으로 추출
domain = parsed_url.netloc
# 경로를 추출
path = parsed_url.path
# 쿼리 파라미터 추출 (? 뒤에 오는 부분)
query_params = parse_qs(parsed_url.query)
# 도메인, 경로, 쿼리 파라미터를 데이터프레임으로 반환
return pd.DataFrame({
'domain': [domain],
'path': [path],
'query_params': [query_params]
})
# 테스트 URL
url = 'https://comic.naver.com/webtoon/detail?titleId=769209&no=141&week=wed'
print(parsing_url(url))
urlparse(url): 주어진 URL을 분석하여 구조화된 객체로 변환한다. 변환된 객체는 scheme, netloc(도메인), path(경로), query(쿼리 문자열) 등의 정보를 포함한다.
netloc: URL에서 도메인 정보를 추출하는 부분이다. 이 코드에서는 comic.naver.com을 추출했다.
path: URL에서 리소스 경로를 나타낸다. 예를 들어, /webtoon/detail은 웹 서버에서 특정 리소스를 나타내는 경로이다.
query: ? 뒤에 위치하는 쿼리 문자열은 서버로 전달되는 파라미터와 그 값들을 나타낸다. parse_qs() 함수는 이를 딕셔너리로 변환하여 다룰 수 있게 해준다. 예시에서는 {'titleId': ['769209'], 'no': ['141'], 'week': ['wed']}처럼 쿼리 파라미터를 추출했다.
domain path query_params
0 comic.naver.com /webtoon/detail {'titleId': ['769209'], 'no': ['141'], 'week': ['wed']}
urlparse()와 parse_qs() 함수를 이용하여 URL의 각 구성 요소를 쉽게 추출하고, 이를 분석하거나 저장할 수 있다.pd.DataFrame을 활용해 URL의 도메인, 경로, 쿼리 파라미터를 구조화된 데이터로 저장하고, 이를 통해 다양한 웹 분석 및 처리 작업을 할 수 있다.