Python을 이용해 크롤링 소스를 짤때 많이 사용하는 모듈이다.
Requests 와 BeautofulSoup을 사용하는데, 이번 페이지에선 Requests 사용법에 대해 알아보자.
Requests 모듈 이란?
- 웹페이지에서 HTTP 요청을 보내 원하는 HTML 정보를 가져오는 모듈이다.
- requests 모듈을 사용하기 위해서는 웹페이지에서 요청하는 방식인 post와 get 방식을 알아야할 필요가 있다.
- 그 이유는 어떤 방식이냐에 따라 parameter(매개변수)를 전달하는 방법이 다르기 때문이다.
- post인지 get 방식인지 확인하는 방법은 크롬기준으로 개발자 도구(Ctrl + shift + i) -> Network 목록에 들어가면 수많은 소스가 나오는데 아무 페이지나 이동후 소스파일을 확인해보면 Request Method : 에서 어떤 방식인지 확인할 수 있다.
1. get 방식
- get 방식은 배에 물건을 실어 운반할 때 선반 위에 '보이도록' 하여 물건을 운반하는 방식이다.
- 어떤 웹페이지에서 로그인을 할 때 웹서버에 로그인 요청을 하기위한 정보가 URL을 통해 전달되는데, ID와 PW가 URL에 노출되어 전달되는 방식이다.
- HTML 소스를 받는 방법은
변수 = requests.get('URL 주소')
* 참고사항 : url은 위에 다른 변수를 선언해 그 변수안에 코드를 넣은 후 requests.get(URL변수명)으로 해줘도 실행 가능
2. Post 방식
- post방식은 배에 내부에 물건을 실어 운반하는 방식이다
- 보안에 있어서 데이터를 노출하지 않고 서버와 통신이 가능한 방식이다.
- post방식은 파라미터를 딕셔너리 형태로 정의한 후 인자값으로 전달해서 사용한다.
변수명2 = requests.post("url")
* ssh 인증서를 사용하는 경우는 url, verify=False 옵션을 넣어준다
* ID/PW인증이 필요한 경우는 url, auth=("id","pass") 아이디, 패스워드 형태로 넣어주면 된다
requests는 HTML코드를 가져오는 것 말고도 여러 기능이 있다.
변수명.text -> 해당 URL의 HTML코드 확인
변수명.status_code -> HTML코드 요청 후 서버에서 Response 값 확인 가능 (구글 검색시 해당 코드 값 확인 가능)
변수명.encoding -> 어떤 인코딩을 사용했는지 확인가능
변수명.headers ->HTML 코드 중 요청/응답 시 헤더 정보를 Key/Value 값으로 확인 가능
변수명.jason -> jason은 딕셔너리처럼 {키:값}을 가져오는 함수. http에서 원하는 값을 딕셔너리 형식으로 가져오는 듯하다.
이 외에도 기능은 더 찾으면 있을것이다..
코딩 후 우선 클라이언트로 서버에 요청시 제대로 응답을 하는지 확인해야한다.
그러기 위해선 response(변수)=resuests.get('URL주소')로 URL값을 저장 후 response.status_code를 프린트 해보면 알 수 있다.
status_code는 HTTP 상태 코드를 반환하는데 1xx~5xx 번대 까지 다양한 코드가 존재한다. 구글에서 쉽게 확인 가능하다.
2xx 번대, 200은 응답 요청에 성공했다는 값이다.
'Develop > python' 카테고리의 다른 글
Python과 DB 연동 (0) | 2020.01.13 |
---|---|
BeautifulSoup 사용법 (0) | 2020.01.13 |
[Python]모듈이란? (0) | 2020.01.07 |
[파이썬 웹 프로그래밍] 2. 파이썬 웹표준 라이브러리 (0) | 2019.12.28 |
[파이썬 웹 프로그래밍] 웹 프로그래밍의 이해 (0) | 2019.11.24 |