>백엔드 개발 >파이썬 튜토리얼 >urllib.parse.quote() 함수를 사용하여 Python 3.x에서 URL을 인코딩하는 방법

urllib.parse.quote() 함수를 사용하여 Python 3.x에서 URL을 인코딩하는 방법

WBOY
WBOY원래의
2023-07-31 22:46:562844검색

Python 3.x에서 URL을 인코딩하려면 urllib.parse.quote() 함수를 사용하세요.

네트워크 애플리케이션 개발에서 URL을 인코딩해야 하는 상황이 자주 발생합니다. 이는 URL에 허용되는 문자가 제한되어 있기 때문입니다. 전달해야 하는 매개변수에는 특수 문자가 포함될 수 있습니다. Python의 urllib.parse 모듈은 URL의 잘못된 문자를 합법적인 URL 문자열로 인코딩할 수 있는 quote() 함수를 제공합니다. 이 기사에서는 코드 예제를 사용하여 urllib.parse.quote() 함수를 사용하여 Python 3.x에서 URL을 인코딩하는 방법을 소개합니다.

먼저 다음 코드 줄을 사용하여 urllib.parse 모듈을 가져와야 합니다.

from urllib.parse import quote

다음으로 quote() 함수를 사용하여 URL 문자열을 인코딩할 수 있습니다. 다음 코드 예제는 특수 문자가 포함된 URL을 인코딩하고 인코딩된 결과를 인쇄합니다.

url = 'http://www.example.com/?keyword=hello world'
encoded_url = quote(url)
print(encoded_url)

위 코드를 실행하면 출력은 다음과 같습니다.

http%3A//www.example.com/%3Fkeyword%3Dhello%20world

보시다시피 quote() 함수는 URL에서 잘못된 문자를 제거합니다. URL 해당 인코딩 문자열로 대체됩니다.

quote() 함수는 인코딩할 필요가 없는 문자를 지정하기 위해 선택적 안전 매개변수를 받을 수도 있습니다. URL 인코딩에서는 기본적으로 영숫자가 아닌 문자만 인코딩됩니다. 일부 특수 문자를 인코딩하지 않으려면 safe 매개변수에 추가하면 됩니다. 예:

url = 'http://www.example.com/?query=python 3.x'
encoded_url = quote(url, safe='/:')
print(encoded_url)

위 코드를 실행하면 출력은 다음과 같습니다.

http://www.example.com/?query=python%203.x

safe 매개변수에 '/' 및 ':' 문자를 지정했기 때문에 이러한 문자는 인코딩 중에 대체되지 않습니다.

또한 quote() 함수는 두 가지 인코딩 모드를 제공하며 기본적으로 UTF-8 인코딩이 사용되며 다른 인코딩 방법도 지정할 수 있습니다. 예를 들면:

url = 'http://www.example.com/?query=你好'
encoded_url = quote(url, encoding='gbk')
print(encoded_url)

위 코드를 실행하면 출력 결과는 다음과 같습니다.

http%3A%2F%2Fwww.example.com%2F%3Fquery%3D%B2%E2%CA%D4

gbk 인코딩을 사용하기 때문에 인코딩 결과가 위의 예와 다르다는 것을 알 수 있습니다.

요약하자면, Python 3.x의 urllib.parse.quote() 함수는 URL을 쉽게 인코딩하고 불법 문자를 합법적인 URL 문자열로 변환할 수 있습니다. 이 기사의 소개와 코드 예제를 통해 독자들은 이 기능을 사용하여 Python에서 URL을 인코딩하는 방법을 마스터했다고 생각합니다. 실제 개발에서는 전달된 매개변수가 URL의 형식과 의미를 파괴하지 않도록 필요에 따라 URL을 유연하게 인코딩할 수 있습니다.

참조:

  • [Python 공식 문서 - urllib.parse](https://docs.python.org/3/library/urllib.parse.html)

위 내용은 urllib.parse.quote() 함수를 사용하여 Python 3.x에서 URL을 인코딩하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

관련 기사

더보기