[Crawling] - requests 스크랩핑(Rest API)

김진수·2020년 12월 2일
0
post-thumbnail
post-custom-banner

Rest API?

  • REST 기반으로 서비스 API를 구현한 것
  • -> REST는 자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미합니다..
  • 최근 OpenAPI(누구나 사용할 수 있도록 공개된 API: 구글 맵, 공공 데이터 등), 마이크로 서비스(하나의 큰 애플리케이션을 여러 개의 작은 애플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 아키텍처) 등을 제공하는 업체 대부분은 REST API를 제공합니다..

requests Rest API

Rest API는 GET, POST, DELETE, PUT:UPDATE, REPLACE을 통해 자원을 조작할 수 있고, 중요한 이유는 url을 활용해서 자원의 상태 정보를 주고 받을 수 있기 때문에 활용성이 정말 높습니다..

예를 들어
GET : www.movies.com/movies : 영화를 전부 조회
GET : www.movies.com/movies/:id : 아이디인 영화를 조회
POST : www.movies.com/movies/ : 영화를 생성
PUT : www.movies.com/movies/ : 영화를 수정
DELETE : www.movies.com/movies/ : 영화를 삭제

영화라는 자원을 받아서 자원을 조회,생성,삭제등 조작이 가능하게 하는 것입니다..

코드를 보면서 설명하겠습니다.

위 코드는 requests를 import를 하고 Session을 활성화하는 코드입니다. Session은 전에 포스팅하였기 때문에 참고 부탁드립니다.

위 코드는 url을 get방식으로 받아오는 코드입니다.

위 코드는 get방식으로 url를 통해 받아온 데이터의 수신상태를 출력하는 코드이며, 데이터를 text형식으로 출력하는 코드입니다.

위 코드는 cookie를 설정하는 부분입니다. 첫번째로 requests모듈에 cookies.RequestsCookieJar()를 통해 쿠키를 설정할 준비를 하고, 두번째로, jar.set('name', 'niceman', domain="httpbin.org", path='/cookies')처럼 쿠키를 삽입합니다. 세번째로 get방식으로 cookie와 함께 요청하고 url를 통해 받아온 데이터를 text형태로 출력하고, header정보를 출력하는 코드입니다.

이제 Rest API를 살펴보겠습니다.

post

post는 리소스를 생성/변경하기 위해 설계되었기 때문에 GET과 달리 전송해야될 데이터를 HTTP 메세지의 Body에 담아서 전송합니다.

위 코드는 http://httpbin.org/post url에 payload2의 정보를 보냄으로써 정보가 저장되는 데이터를 받아오는 코드입니다. payload2가 위에서 설명한 HTTP 메세지의 해당합니다.

위 코드를 보게되면 form부분에 payload2가 저장되어 있는 것을 확인할 수 있습니다.

put

put은 지정된 리소스위치가 명확할 때, 리소스를 생성 또는 업데이트합니다.

위 코드는 http://httpbin.org/put 사이트에 데이터를 보내면 생성 또는 업데이트 되고.
또한 데이터를 text형식으로 출력하는 코드입니다.

위 코드는 text형식으로 출력한 데이터입니다. 보게 되면 form부분에 payload1의 정보가 생성된 것을 알 수 있습니다.

delete

delete는 생성된 리소스를 삭제합니다

위 코드는 url에 data부분을 삭제하고 삭제한 데이터를 text형식으로 출력하는 코드입니다.

보시게 되면 삭제가 되었기 때문에 {}로 표현됩니다. 만약 제대로 삭제 된 것을 확인하려면 r.ok를 통해 확인할 수 있습니다.

r.ok를 통해 확인한 결과 True를 확인하였고, 정상적으로 삭제된 것을 확인할 수 있습니다.

profile
백엔드 개발자
post-custom-banner

0개의 댓글