프로그래밍 기술/Django 웹 프로그래밍

9. URLLIB.PARSE 사용하기

언제나휴일 2019. 2. 15. 12:18
반응형

9. URLLIB.PARSE 사용하기


urllib.parse 사용하기



소스(demoparse.py)

from urllib.parse import urlparse

siteurl = "http://ehclub.co.kr/language;python?id=ehclub&seq=23#ln20"

dest = urlparse(siteurl)

print('src siteurl:'+siteurl)

print('parsing result:')

print(dest)

 

if dest.scheme: print('scheme:'+dest.scheme)

if dest.netloc: print('netloc:'+dest.netloc)

if dest.path: print('path:'+dest.path)

if dest.params: print('params:'+dest.params)

if dest.query: print('query:'+dest.query)

if dest.hostname: print('hostname:'+dest.hostname)

if dest.username: print('username:'+dest.username)

if dest.password: print('password:'+dest.password)

if dest.fragment: print('fragment:'+dest.fragment)

if dest.port: print('port:'+dest.port)

결과

src siteurl:http://ehclub.co.kr/language;python?id=ehclub&seq=23#ln20

parsing result:

ParseResult(scheme='http', netloc='ehclub.co.kr', path='/language', params='python', query='id=ehclub&seq=23', fragment='ln20')

scheme:http

netloc:ehclub.co.kr

path:/language

params:python

query:id=ehclub&seq=23

hostname:ehclub.co.kr

fragment:ln20

urllib.urlparse 모듈에는 url을 분석하는 urlparse 함수와 분리 및 결합하는 함수 등을 제공합니다. 여기에서는 입력인자로 전달받은 url을 구문 분석하는 urlparse 함수를 사용하였습니다.

 

urlparse 함수는 입력 인자로 url을 인자로 받고 분석한 결과 개체를 반환합니다.

dest = urlparse(siteurl)

반환 개체에는 scheme, netloc, path, params, query, fragment, username, password, hostname, port 정보를 멤버로 갖습니다.

 

만약 여러분께서 페이지를 수집하는 로봇을 개발한다고 가정하면 수집한 페이지 내의 하이퍼링크 목록의 url 구문 분석하는 작업을 요구합니다. 로봇은 이미 수집을 완료하였거나 수집 대상 사이트로 등록한 주소인지 확인하는 작업을 통해 수집한 페이지 내의 하이퍼목록을 버리거나 수집 대상 사이트에 추가합니다. fragment query 등은 수집 대상 사이트를 구분하는 주소에는 필요치 않아 분리하는 작업이 필요합니다. urllib.parse 모듈을 사용할 있습니다.

반응형