일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 네트워크
- 웹개발
- 프로그래밍
- 데이터분석
- 딥러닝
- 데이터구조
- 자료구조
- 코딩
- 컴퓨터공학
- 데이터과학
- 사이버보안
- 소프트웨어
- 인공지능
- 보안
- 빅데이터
- 클라우드컴퓨팅
- 데이터베이스
- 2
- Yes
- 알고리즘
- 프로그래밍언어
- 버전관리
- 컴퓨터과학
- 컴퓨터비전
- 파이썬
- 네트워크보안
- I'm Sorry
- 머신러닝
- 자바스크립트
- 소프트웨어공학
- Today
- Total
스택큐힙리스트
Python에서 URL 매개 변수를 퍼센트 인코딩하는 방법은 무엇인가요? 본문
만약 내가 하면
url = http://example.com?p= + urllib.quote(query)
이것은 OAuth 정규화를 깨뜨리는 %2F로 /을(를) 인코딩하지 않습니다.
유니코드를 처리하지 않습니다 (예외를 발생시킵니다)
더 좋은 도서관이 있나요?
답변 1
파이썬 2
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 파싱 문제를 예방할 수 있습니다.