[웹크롤링] 정적 웹 크롤링 requests 라이브러리

이번 시간에는 정적 웹페이지의 데이터를 가져오는 정적 웹 크롤링 라이브러리 requests를 사용해보도록 하겠습니다.

 

requests 라이브러리 설치

requests는 Python을 이용해서 HTTP 통신을 진행할 수 있는 라이브러리로 pip install 을 통해서 실행할 수 있습니다.

pip install requests

노트북 환경(.ipynb)에서는 %를 이용해서 터미널 코드 실행할 수 있습니다

%pip install requests

 

GET, POST 요청하기

- 정보를 달라고 요청하는 것은 GET method 이용

- 정보 갱신을 위한 요청은 POST method 이용

네이버 홈페이지의 GET 요청 보내고 응답 받기

import requests

res = requests.get("https://www.naver.com")
res

get 요청의 출력값으로 <Response [200]> 이라는 HTTP 응답 코드 객체가 생성되고 이를 res에 저장해서 값을 확인해보도록 합시다.

 

응답코드의 header과 body 내용을 확인했습니다. 여기서, requests의 .text는 모든 정보를 가져옵니다. 

 

 

로그인 정보를 POST method로 보내고 응답받기

Webhook 사이트를 이용해서 통신 요청 정보를 모니터링 해보겠습니다. 

 

Webhook.site - Test, transform and automate Web requests and emails

Upgrade to a Webhook.site account to unlock unlimited requests This URL received the maximum of {{ appConfig.MaxRequests }} requests and can't accept more requests, emails or DNSHooks. New requests sent to this URL will return HTTP status code 410 Gone or

webhook.site

 

Webhook 사이트에 통신 테스트를 할 수 있는 URL이 나오게 되고, 왼쪽 공간에서 통신 내역을 확인할 수 있습니다. 

payload = {"name":"Hello", "age":13}
res = requests.post("https://webhook.site/4755fadc-facc-40cc-9d6d-74fb69128fb6", payload)

 

딕셔너리(json)형태의 payload에 보내고 싶은 정보를 담아 post 메소드를 보내보겠습니다.

 

post 요청의 출력값으로 이라는 HTTP 응답 코드 객체가 생성되고 이를 res에 담아 상태코드(Status code)확인해보면 200으로 잘 작동한 것을 확인 할  수 있습니다.

이제 웹상에서 정보가 제대로  전달됐는지 확인하기 위해서 webhook 페이지로 이동하면,

post로 보낸 정보가 잘 전달된 것을 확인할 수 있습니다. 

 

Requests 모듈을 이용할 때는 원하는 내용만 가져오기 어려움

이를 위해 BeautifulSoup 라이브러리를 사용할  수 있습니다. 

 

 

🔜 이어지는 다음 글 보기 [웹크롤링] 정적 웹크롤링 BeautifulSoup

 

[웹크롤링] 정적 웹크롤링 BeautifulSoup

requests모듈을 이용해서 HTTP요청을 보내고 응답을 받아 body내용을 확인해보았습니다.하지만, 이 경우에 원하는 요소만 가져올 수 없어서 분석하기에 어려운 점이 있었습니다. HTTP Parser을 사용하

ourjune.tistory.com