본문 바로가기
Data Analysis/Python

[Web Crawling] 웹 크롤링을 위한 파이썬의 Requests 모듈

by 太热了 2022. 5. 8.

Requests 모듈 기초

파이썬의 requests모듈은 웹 문서를 크롤링 하는데 필요한 모듈이다! 주요 함수인 get함수가 있다!!

  • get 함수 기초

: 파이썬의 requests 모듈은 웹에 HTTP 요청을 보내는 역할을 함.
: requests 모듈을 이용하여 HTTP 요청을 보내고 HTML 코드를 받는 함수는 get 함수! 이 함수는 url을 입력으로 받으면, 결과 값을 응답 객체에 담아 반환한다.

: 응답 객체는 status_code, text, content라는 세가지 속성을 갖는다.
- status_code = HTTP 요청이 정상적으로 이루어졌는지 알려주는 코드 (200)
- text = HTML 코드를 텍스트로 반환함.
- content = HTML 코드를 바이트로 변환함.

[get 함수를 사용하여 네이버의 HTML코드 가져오기 실습]

import requests
url = 'http://www.naver.com'
response = requests.get(url)
print('상태:', response.status_code)
print(response.text[:100])
print(response.content[:100])




# </br>상태: 200<!doctype html> <html lang="ko" data-dark="false"> <head> <meta charset="utf-8"> <t</br>b'\n<!doctype html> <html lang="ko" data-dark="false"> <head> <meta charset="utf-8"> <t'</br>

: 응답 객체의 text와 content 속성은 문자열 자료형이므로 슬라이싱 지원함!

  • get 함수의 params 인자

: 일반적으로 url에는 하나 이상의 파라미터가 포함되어 있음.
: get함수의 params 인자[사전형] 를 사용하면 이러한 종류의 url을 가지고 HTTP 요청을 할 수 있음.

: 같은 속성을 가지는 url을 바탕으로 웹 페이지를 가져와야 하는 상황이 매우 흔하게 발생됨.
- 리뷰 데이터는 한 상품에 여러 개의 리뷰 페이지로 구성되는데, 각 페이지의 주소는 url의 파라미터만 다른 경우가 많음

[get 함수를 사용하여 리뷰 페이지 가져오기 실습]

: 1부터 10 의 리뷰 페이지를 가져오기

import requests
from requests.models import response
url = 'https://movie.naver.com/movie/bi/mi/review.nhn'
parameter = {'code':96951}

HTML_list = []
for page_num in range(1,11):
    parameter['page'] = page_num
    response = requests.get(url, params= parameter)
    if response.status_code == 200:
        HTML_list.append(response.text)

print(len(HTML_list))
print(HTML_list[0][1000:1000])

: parameter['page'] = page_num
- parameter 라는 사전 자료형의 요소를 추가 하거나 수정하기 위한 코드

댓글