- Security Insight
- NUlleX
- ☆ Memory ☆
- Comments on: Home
- Comments for FORENSIC-PROOF
- illusionary origami
- InfoSec Institute Resources
- inREVERSE
- Comments for Network Forensics…
- Comments for SecurityLearn
- セキュリティ、個人情報の最新ニュース:Security NE…
- ITmedia
- BIGLOBEセキュリティニュース
- ITpro セキュリティ
- セキュリティ - ZDNet Japan
- ZLeBj[XFZLeB@nifty
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 오메이칸
- 윈도우용 Snort 설치
- IEEE Security & Privacy
- 함안산인우체국
- NHK로 일본어 공부하기
- 우분투 설치 중 오류 64
- 일본대학원 연구생
- 함안우체국
- 나고야대학 기숙사
- 나고야대학
- 우분투
- 정보보호
- 나고야대학 연구생
- 인터네셔날 레지던스 히가시야마
- 이서규선생님
- 한국에서 일본으로 해외배송 서비스
- 가상머신에 우분투 설치
- 이서규
- 手作りパイ
- 일본어학원 추천
- 히가시야마 기숙사
- pythonrequests
- 카톡 친구 목록
- 윈도우에 우분투 설치
- 나고야대학 히가시야마
- 아이폰 업데이트 친구 목록
- 보안
- 일본어 신문 읽기
- 우분투 설치
- 카카오톡 삭제
- Today
- Total
소나기
Python requests 라이브러리 설치 및 사용방법 본문
출처: https://requests.readthedocs.io/en/latest/
Requests 는 간단한 HTTP 라이브러리인데, 요새 내가 하는 5G Core 프로젝트에서 각 컴포넌트의 기능이 모두 웹 서버이기 때문에 아래 라이브러리를 사용해서 요청하고 응답 받는 식으로 데이터를 주고 받고 있다.
r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
r.status_code
// 200
r.headers['content-type']
// 'application/json; charset=utf8'
r.encoding
// 'utf-8'
r.text
// '{"type":"User"...'
r.json()
// {'private_gists': 419, 'total_private_repos': 77, ...}
설치는 아주 간단하다.
- 설치
파이썬 pip으로 자동 설치 하는 경우 아래 명령어로 설치한다.
$ python -m pip install requests
소스코드로부터 설치하고 싶으면 아래 오픈소스를 이용한다.
$ git clone git://github.com/psf/requests.git
- 요청 보내기
라이브러리를 불러온다.
import requests
이제 웹페이지를 가져온다.
r = requests.get('https://localhost/')
요청을 보내게 되면 객체 r에는 요청의 응답이 저장된다. 그리고 요청에 관련된 모든 정보는 바로 이 r에 저장된다.
GET 외에도 POST도 사용 가능하다. 이때 데이터를 삽입하는 방법은 다음과 같다.
r = requests.post('https://httpbin.org/post', data={'key': 'value'})
그리고 PUT, DELETE, HEAD 그리고 OPTIONS 도 아래와 같이 가능하다.
r = requests.put('https://httpbin.org/put', data={'key': 'value'})
r = requests.delete('https://httpbin.org/delete')
r = requests.head('https://httpbin.org/get')
r = requests.options('https://httpbin.org/get')
- URLs에서 매개변수 전달
URL로 쿼리를 요청할때 데이터를 보내고 싶은 경우가 많다. URL을 직접 구성하는 경우 이 데이터는 URL에서 물음표 뒤에 키/값 쌍으로 제공된다(예: httpbin.org/get?key=val. 요청을 사용하면 params키워드 인수를 사용하여 이러한 인수를 문자열 사전으로 제공할 수 있다. 예를 들어 httpbin.org/get 로 key1=value1 나 key2=value2 을 전달 하려면 다음 코드를 사용한다.
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.get('https://httpbin.org/get', params=payload)
URL을 인쇄하여 URL이 올바르게 인코딩 되었음을 확인한다.
print(r.url)
https://httpbin.org/get?key2=value2&key1=value1
Json 이나 리스트도 보낼수 있다.
payload = {'key1': 'value1', 'key2': ['value2', 'value3']}
r = requests.get('https://httpbin.org/get', params=payload)
print(r.url)
https://httpbin.org/get?key1=value1&key2=value2&key2=value3
- 응답 내용 확인하기
import requests
r = requests.get('https://api.github.com/events')
r.text
'[{"repository":{"open_issues":0,"url":"https://github.com/...
Requests will automatically decode content from the server. Most unicode charsets are seamlessly decoded.
요청은 서버의 콘텐츠를 자동으로 디코딩한다. 대부분의 유니코드 문자 집합은 원활하게 디코딩된다.
요청을 하면 Requests는 HTTP 헤더를 기반으로 응답 인코딩에 대해 추측한다. 에 액세스할 때 Requests에서 추측한 텍스트 인코딩이 사용된다.
r.text. r.encoding와 같은 속성 이름을 사용하여 Requests가 사용 중인 인코딩을 찾고 변경할 수 있다.
r.encoding
'utf-8'
r.encoding = 'ISO-8859-1'
인코딩을 변경하면 요청은 r.encoding 를 호출할 때마다 새 값을 사용한다. 그리고 r.text 콘텐츠 인코딩이 무엇인지 알아낼 수 있다. 예를 들어 HTML과 XML은 본문에 인코딩을 지정할 수 있는 기능이 있다. 이와 같은 상황에서는 r.content를 사용하여 인코딩을 찾은 다음 r.encoding 을 설정해야 한다. 이렇게 하면 r.text를 올바른 인코딩으로 사용할 수 있다.
요청은 필요한 경우 사용자 지정 인코딩도 사용한다. 고유한 인코딩을 생성하여 codecs 모듈에 등록한 경우 코덱 이름을 값으로 사용하기만 하면 r.encoding 요청이 디코딩을 처리한다.
'연구 > Network' 카테고리의 다른 글
python requests 활용하기 : 환율 정보 얻기 (0) | 2022.09.30 |
---|---|
주요 네트워크 포트 번호와 설명 (0) | 2022.09.30 |
HTTP response status codes HTTP 응답 상태 코드 종류와 의미 (0) | 2022.09.29 |
네트워크 패킷 분석을 실습해 볼수 있는 사이트 (0) | 2013.02.07 |
IPS/IDS 오픈소스 (0) | 2013.01.24 |