urllib.parse library

urllib.parse library 정리

  • URL query parameter(매개변수)를 사전으로 출력한다.
  • webtoon crawler - 1 때 no를 추출하는 과정에 필요한 사항
  • 복잡하기 때문에 별도로 정리
# urllib 라이브러리에서 parse 모듈 소환
>>> from urllib import parse
# 예제 url
>>> url = "http://www.example.org/default.html?ct=32&op=92&item=98"
# url을 parsing하면
>>> parse.urlsplit(url)
# 아래와 같이 SplitResult값이 출력되는데
# scheme, netloc, path, query, fragment요소가 튜플 형태로 출력됨.
SplitResult(scheme='http', netloc='www.example.org', path='/default.html', query='ct=32&op=92&item=98', fragment='')
# qs은 query set으로 추정되고
# parse.urlsplit(url).query -> SplitResult중 query값만 출력
# 기본적으로 딕셔너리 형태로 출력
>>> parse.parse_qs(parse.urlsplit(url).query)
{'item': ['98'], 'op': ['92'], 'ct': ['32']}
>>> dict(parse.parse_qsl(parse.urlsplit(url).query))
{'item': '98', 'op': '92', 'ct': '32'}
  • 딕셔너리 형태를 해제해서 출력 하려면 인덱스값을 붙여주면 됨

    >>>parse.parse_qsl(parse.urlsplit(url).query))['op'][0]
    92
    

참조

urllib.parse.urlencode


from urllib.parse import urlencode, quote_plus
  
# 사전에 있는 key : value값을 인용해서
payload = {'username':'administrator', 'password':'xyz'}
# URL로 인코딩해준다
result = urlencode(payload, quote_via=quote_plus)
print(result)
'password=xyz&username=administrator'

참조

Comments