SiLaure's Data
[API] 01. requests 모듈 사용하기(HTTP 통신) 본문
- 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')
'Records of > Learning' 카테고리의 다른 글
[beautifulsoup] 01. beautifulsoup 모듈 사용하여 HTML 파싱하기(parsing) (0) | 2021.07.29 |
---|---|
[API] Open API를 활용하여 json 데이터 추출하기(공공데이터 API) (0) | 2021.07.29 |
[Web] HTTP method(GET, POST) / HTML element(태그, 속성, 값) (0) | 2021.07.29 |
[Numpy] 04. Array Indexing (0) | 2021.07.28 |
[Seaborn] 07. Heatmap (0) | 2021.07.26 |
Comments