스택큐힙리스트

Python에서 URL 매개 변수를 퍼센트 인코딩하는 방법은 무엇인가요? 본문

카테고리 없음

Python에서 URL 매개 변수를 퍼센트 인코딩하는 방법은 무엇인가요?

스택큐힙리스트 2023. 4. 14. 16:19
반응형

만약 내가 하면

url = http://example.com?p= + urllib.quote(query)

이것은 OAuth 정규화를 깨뜨리는 %2F로 /을(를) 인코딩하지 않습니다.

유니코드를 처리하지 않습니다 (예외를 발생시킵니다)

더 좋은 도서관이 있나요?

답변 1

파이썬 2

the documentation에서:

urllib.quote(string[, safe])

문자열에서 특수 문자를 %xx 이스케이프를 사용하여 대체합니다. 문자, 숫자 및 '_.-' 문자는 절대로 인용되지 않습니다. 기본적으로이 함수는 URL의 경로 섹션을 인용하기 위해 지정됩니다. 선택적 인자 'safe'는 추가적으로 인용되어서는 안되는 문자를 지정하며 기본값은 '/'입니다.

그것은 안전을 위해 @ # $! ^ ^ * $ &를 통과하는 것이 첫 번째 문제를 해결한다는 것을 의미합니다.

>>> urllib.quote('/test')

'/test'

>>> urllib.quote('/test', safe='')

'%2Ftest'

두 번째 이슈에 대해서는 a bug report about it가 있습니다. Python 3에서 해결되었다는 것 같습니다. 이렇게 UTF-8로 인코딩하여 우회할 수 있습니다.

>>> query = urllib.quote(uMüller.encode('utf8'))

>>> print urllib.unquote(query).decode('utf8')

Müller

그런데, urlencode 에 한번 봐봐.

파이썬 3

파이썬 3에서 함수 quote가 urllib.parse로 이동되었습니다.

>>> import urllib.parse

>>> print(urllib.parse.quote(Müller.encode('utf8')))

M%C3%BCller

>>> print(urllib.parse.unquote(M%C3%BCller))

Müller

답변 2

Python을 사용하여 URL 매개 변수를 percent-encode하는 방법은 무엇인가요?

Python은 웹 개발에 가장 많이 사용되는 프로그래밍 언어 중 하나입니다. 이 언어에는 urllib 모듈이 있어 URL을 조작하고 처리하는 데 도움이 됩니다. 이번 글에서는 urllib 모듈을 사용하여 URL 매개 변수를 percent-encode하는 방법을 소개하겠습니다.

URL을 보낼 때, 일부 문자는 예약된 문자로 간주됩니다. 예약된 문자는 URL을 파싱하는 데 사용되므로 원하지 않는 결과를 초래할 수 있습니다. 이러한 예약된 문자 중 일부는 % 기호와 함께 인코드하여 URL에서 안전하게 사용할 수 있습니다.

Python에서 URL 매개 변수를 percent-encode하려면 urllib 모듈의 quote 함수를 사용하면 됩니다. 이 함수는 문자열을 가져와 예약된 문자를 percent-encode된 문자로 대체합니다. 다음은 예시입니다.

```python

from urllib.parse import quote

url = https://example.com/search?q=

query = apple, banana & orange

encoded_query = quote(query)

full_url = url + encoded_query

print(full_url)

```

위 코드는 https://example.com/search?q=apple%2C%20banana%20%26%20orange 를 출력합니다. query 변수에는 예약된 문자인 쉼표와 앰퍼샌드(&)가 포함되어 있습니다. quote 함수는 이러한 문자를 인코드하여 URL에서 안전하게 사용할 수 있는 문자로 대체합니다.

이와 같은 방법으로 Python에서 URL 매개 변수를 percent-encode할 수 있습니다. 이것은 웹 개발에서 매우 중요한 기술입니다. 올바른 URL 인코드를 사용하면 데이터가 보안적으로 안전해지고 URL 파싱 문제를 예방할 수 있습니다.

반응형
Comments