프로그래밍/웹크롤링

파이썬 웹크롤링의 기초(1) urllib

콘파냐 2019. 12. 13. 13:24
반응형

웹에는 정말 수많은 데이터가 존재합니다 그리고 현 시점에서는 수 많은 사람들이 웹 상에서 데이터를 뽑아내고 있죠. 마치 금광에서 금을 캐는 것 같은데 다른 점이라면 웹 상의 데이터는 고갈되지 않는 다는 점입니다. 이렇게 시간이 갈 수록 점점 많아지는 데이터는 축척될 수록 빅데이터로서 더 가치있게 되겠죠.

데이터의 중요성을 알기는 하지만 어떻게 뽑아내야할지 모른다면 낭패입니다.

수작업으로 하는 것은 한계가 있고 업체를 이용하자니 장기적인 플랜이라면 비용이 생각 이상으로 들 수도 있구요.

이 강의는 웹크롤링 강의로 웹 크롤링을 배우고자 하시는 분들을 위한 강의며 파이썬을 이용합니다. 파이썬의 기초에 대한 강의는 인터넷 상에 많이 있으니 어렵지 않게 배우실 수 있습니다. 본인의 블로그 역시 파이썬의 기초에 대한 강의가 있으므로 참고하길 바란다.

VSCODE를 사용하시길 추천드리고 사용법에 대해서는 따로 정리하여 올리겠습니다.

파이썬이 설치된 윈도우OS 환경에서 당장 실습을 원하신다면 IDLE를 추천드리겠습니다. tkinter로 만들어진 IDLE 환경은 interactive 한 환경이므로 초보자에게는 대단히 효율적인 학습환경입니다.   파이썬 기본 환경이고 인터페이스도 별로라 꺼려하실 수 있는데 사실 학습에 이만한 환경이 없습니다.


IDLE를 실행하는 방법

윈도우 화면 왼편 아래에 있는 검색창에서 IDLE를 치면 됩니다. 기본화면은 interactive한 환경이고 File->New File을 선택해서 Text Editor와 같은 환경을 사용할 수 있습니다. 예전에는 Text 환경에서 자동완성을 지원하지 않았는데 최근에 자동완성이 지원됩니다. 


urllib

이 패키지에는 웹과 관련된 다양한 모듈이 있습니다. 여기선 urllib.request를 사용하여 웹에있는 데이터를 가저오는 방법을 배울 것입니다.


urllib.request.urlretrieve

urlretrieve(주소, 저장경로)

=> 주소의 (문서, 이미지)를 저장경로로 저장

urlretrieve 함수는 두개의 인수를 받습니다. 첫번 째는 목표 주소, 두 번째는 저장될 주소입니다.

한번 구글 메인 이미지를 가져와 보죠. 물론 마우스 오른쪽 클릭을 해서 이미지 저장을 하면 쉽겠지만, 우리가 궁극적으로 하려는 것은 자동화입니다. 그러기 위해서는 코드가 필요합니다.


다음과 같이 구글의 메인 이미지 주소를 목표주소로 하고 목표를 우리의 컴퓨터에 저장해보겠습니다.

복사한 주소를 가지고 다음과 같은 코드를 만들겠습니다. 목표 주소는 어떤 것이든 파일이라면(html, png 등등) 상관없습니다.

그리고 파일을 실행해 주면 지정한 경로에 목표로 한 파일이 저장됩니다.

단순히 웹 상의 문서나 파일들을 저장할 땐 위와 같은 작업을 반복하면 될 겁니다.

다음은 좀 더 쓸모있는 녀석입니다.


urllib.request.urlopen

urlopen("목표주소")

=> 목표주소를 읽어와서 HTTPResponse 객체를 반환한다.

이 함수 역시 주소의 내용을 읽어오는 함수나 앞서 urlretrieve 함수와는 다릅니다. 앞서 함수는 파일로 저장을 했다면 이 함수는 응답객체를 반환합니다. 

이렇게 반환된 객체를 가지고 좀 더 다양한 작업들을 할 수 있습니다. (이 객체에 여러가지 정보들이 있겠죠.) 

그렇다면 이 객체를 가지고 뭘 어떻게 해야할지는 다음 시간에 구체적으로 다루겠습니다.

앞서 urlretrieve 함수 역시 반환하는 값들이 있는데 이 것 역시 다음에 좀 더 다루겠습니다.



반응형