본문 바로가기
Programming Language/Python

[Web Crawling] Requests 와 URLLIB

by 홍월이_ 2022. 12. 9.

아래 내용들은 제가 혼자 학습하면서 정리한 내용들입니다.

'부족한 내용' 혹은 '잘못된 내용'이 있을 수 있습니다.

댓글 남겨주시면 더욱 공부하고 수정하도록 하겠습니다.

감사합니다.


먼저 웹 크롤링을 시작하기에 앞서 HTTP 요청 및 URL 작업을 위한 모듈에 대해 알아보자

Python에서는 대표적으로 'requests'  'urllib' 라는 두 모듈이 있다.

 

Requests

requests 모듈은 Python에서 HTTP 요청을 보낼 수 있는 모듈이다.

URL과 Parameter를 통해 요청을 보내고 응답(Response)를 받는다.

 

Response 객체

요청(request)을 보내면 응답(response)를 받는데, 이 응답은 Python의 객체로 받게 된다.

response에는 여러가지 정보와 기능을 갖고 있는데, 몇가지만 살펴보면

대표사진 삭제

response 객체에서 쓸 수 있는 기능들

- status_code : 응답 코드

- request : 내가 보낸 request 객체에 접근

- text : 응답받은 HTML을 문자열로 반환

- raise_for_status : 응답 코드가 200이 아닌 경우 에러 발동

- json : response 가 json 타입일 경우 딕셔너리 타입으로 변환

 

등의 기능이 있다.

 

아래는 Requests를 통해 응답을 받는 방법이다.

# response 객체 => html 페이지
url = 'http://www.naver.com'
response = requests.get(url)

response.status_code
html_str = response.text
 

 

URLLIB

urllib 는 url 작업을 위한 모듈을 모은 파이썬 패키지이다.

urllib.request는 URL을 가져올 수 있는 파이썬 모듈

 

urlopen 함수를 사용하여 html 문서를 가져올 수 있다.

response.status 는 해당 통신이 성공적인지 응답 코드를 얻을 수 있다.

 

아래는 urllib 를 이용해 응답을 받는 방법이다.

with urlopen('http://www.naver.com') as response:
    print(response.status)
    html = response.read()
    print(html)
 

 

 

Response 객체를 얻었으니 다음엔 BeautifulSoup 을 이용해서 html 문서를 파싱해보도록 하겠다.

 

댓글