SiLaure's Data

[API] 01. requests 모듈 사용하기(HTTP 통신) 본문

Records of/Learning

[API] 01. requests 모듈 사용하기(HTTP 통신)

data_soin 2021. 7. 29. 16:38

 

- request 모듈

1. http request/response를 위한 모듈
2. HTTP method를 메소드 명으로 사용하여 request 요청
e.g. get, post

 

1. get 요청하기

1) http get 요청하기
2) query parameter 이용하여 데이터 전달하기

 

  • url을 통해 요청하기
import requests

url = 'https://news.v.daum.net/v/20190728165812603'
resp = requests.get(url)

resp

출력 : <Response [200]>

200은 가장 일반적인 성공 메시지

 

resp.text

출력 :

페이지 소스 보기(view-source:https://news.v.daum.net/v/20190728165812603)와 같다

 

 

2. post 요청하기

1) http post 요청하기
2) post data 이용하여 데이터 전달하기

 

  • 로그인을 통해 요청하기

 

url = 'https://www.kangcom.com/member/member_check.asp'
data = {
    'id' : 'test',
    'pwd' : 'Test1234'
}
resp = requests.post(url, data=data)
resp.text
data는 Dict 속성을 가지므로 Dict로 선언해 준다.

출력 : 

\n\t\t<script language="javascript">\n\t\t{\n\t\t\talert("ID가 잘못되었거나 비밀번호가 잘못되었습니다!\\n\\n다시 한번확인해 주세요!");\n\t\t\thistory.back ();\n\t\t}\n\t\t</script>\n

 

3. HTTP header 이용하기

url이나 데이터만으로 크롤링이 안되는 경우에 Header에 명시된 user-agent를 통해 사용한다.

1) header 데이터 구성하기
2) header 데이터 전달하기

 

url = 'https://news.v.daum.net/v/20190728165812603'

headers = {
    'user=agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.277 Whale/2.9.118.38 Safari/537.36'
}
resp = requests.get(url, headers=headers)

resp.text
header 역시 Dict로 선언하고, name's parameter를 header로 받는다.

출력 : 

 

 

 

 

4. HTTP response 처리하기

1) response 객체의 이해
2) status_code 확인하기
3) text 속성 확인하기

 

url = 'https://news.v.daum.net/v/20190728165812603'
resp = requests.get(url)

resp.text
resp.status_code

 

 

만약 코드가 정상인 경우에만 response text를 출력하고, 에러인 경우에는  'error'를 출력하게 할 수도 있다.
if resp.status_coe == 200 :
	resp.text
else :
	print('error')

 

 

 

Comments