본문 바로가기

언어/python&웹 크롤링

[python&웹 크롤링] 13. requests 모듈 기초(2)

RestFul 방식으로 통신 테스트 진행 해보겠다.

RestFul 방식이란 uri 주소만 봐도 어떠한 동작이 수행 될 것인지 알 수 있는것이다.

GET, POST, PUT(FETCH), DELETE 가 있다.

 

 

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
32
33
34
35
36
37
38
39
40
import sys
import io
import requests, json
 
sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding = 'utf-8')
sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding = 'utf-8')
 
#get 날리기
#r = requests.get('https://api.github.com/events')
#r.raise_for_status() #에러가 발생했을때 예외 발생 시켜줌
#print(r.text)
 
jar = requests.cookies.RequestsCookieJar()
jar.set('name''kim', domain='httpbin.org', path='/cookies')
 
#r = requests.get('http://httpbin.org/cookies', cookies=jar)
#r.raise_for_status()
#print(r.text)
 
#r = requests.get('https://github.com', timeout=3) #3초동안 대기하겠다
#print(r.text)
 
#post 날리기
#r = requests.post('http://httpbin.org/post', data={'name':'kim'}, cookies=jar)
#print(r.text)
 
payload1 = {'key1''value1''key2''value2'#dict
payload2 = (('key1','value1'), ('key2','value2')) #tuple
payload3 = {'some':'nice'}
 
#r = requests.post('http://httpbin.org/post', data=payload1)
#print(r.text)
 
#r = requests.post('http://httpbin.org/post', data=payload2) #튜플도 폼데이터 형데로 보냄
#print(r.text)
 
= requests.post('http://httpbin.org/post', data=json.dumps(payload3)) #json데이터로 만들어서 보냄
print(r.text) # form 이 아닌 json측에 데이터들 출력 된다.
 
 
cs

3-3-1.py

get, post 방식으로 테스트를 진행했다.

결과값을 확인해보자.

post 방식으로는 데이터를 dict 형태로 실어 보낼 수 있다.

 

 

sys.stdout&nbsp;<span

 

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
import sys
import io
import requests, json
 
#Rest : POST, GET, PUT:UPDATE, REPLACE (FETCH : UPDATE, MODIFY), DELETE
 
sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding = 'utf-8')
sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding = 'utf-8')
 
payload1 = {'key1''value1''key2''value2'#dict
payload2 = (('key1','value1'), ('key2','value2')) #tuple
payload3 = {'some':'nice'}
 
#put 사용
#r = requests.put('http://httpbin.org/put', data=payload1)
#print(r.text)
 
# 포스트 첫번째 글을 등록했다. 라는것을 url통해 예측 가능, 등록된 글은 id가 1로 되었다.
#r = requests.put('https://jsonplaceholder.typicode.com/posts/1', data=payload1)
#print(r.text)
#key와 value를 response해주었음.
#fake rest api
 
#delete 사용
#첫번째 글 지워라 라는 의미
= requests.delete('https://jsonplaceholder.typicode.com/posts/1')
print(r.text)
 
cs

3-3-2.py

put, delete 를 사용했다.

put 같은경우 https://jsonplaceholder.typicode.com/posts/1 에 데이터값을 추가하여 요청할 경우

글을 등록시키는 형태, 리턴값으로 id를 돌려준다.


Today :
Yesterday :
Total :