[Python] URL파싱(urllib)

Gi Woon Lee·2024년 10월 14일

Final Project

목록 보기
6/6

TIL: URL Parsing in Python

URL은 파싱하기 전에는 단순한 문자열 덩어리일 뿐이다. 파이썬에서 URL Parsing을 통해 문자열로 된 URL을 의미 있는 정보로 구조화하여 도메인, 경로, 쿼리 파라미터 등을 추출할 수 있다. 이를 통해 웹 요청을 분석하거나 URL을 쉽게 다룰 수 있다.

파이썬에서 URL Parsing하기

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))

주요 개념

  1. urlparse(url): 주어진 URL을 분석하여 구조화된 객체로 변환한다. 변환된 객체는 scheme, netloc(도메인), path(경로), query(쿼리 문자열) 등의 정보를 포함한다.

  2. netloc: URL에서 도메인 정보를 추출하는 부분이다. 이 코드에서는 comic.naver.com을 추출했다.

  3. path: URL에서 리소스 경로를 나타낸다. 예를 들어, /webtoon/detail은 웹 서버에서 특정 리소스를 나타내는 경로이다.

  4. 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']}

요약

  • URL Parsing은 단순한 문자열 URL을 도메인, 경로, 쿼리 파라미터 등으로 나누어 구조화된 정보를 추출하는 작업이다.
  • 파이썬의 urlparse()parse_qs() 함수를 이용하여 URL의 각 구성 요소를 쉽게 추출하고, 이를 분석하거나 저장할 수 있다.
  • pd.DataFrame을 활용해 URL의 도메인, 경로, 쿼리 파라미터를 구조화된 데이터로 저장하고, 이를 통해 다양한 웹 분석 및 처리 작업을 할 수 있다.

0개의 댓글