본문 바로가기

머신러닝(Machine Learning)/실무

웹 상의 정보를 추출하기



이 포스팅은 서적 '머신러닝, 딥러닝 실전개발 입문'을 참고한 포스팅입니다.



이전 포스팅에서 우리는 머신러닝을 하기 위한 양분 데이터의 중요성을 알아보았다.


그렇다면 웹상에 돌아다니는 무수히 많은 정보를 얻어야 우리는 머신러닝을 구현하지 않을까?


실제로 웹 상의 데이터를 구하는 방법을 작성하겠다.



파이썬에서는 웹 사이트에 있는 데이터를 추출하기 위해 "urllib 라이브러리"를 사용한다. 


해당 라이브러리를 이용하면 HTTP 또는 FTP를 사용해 데이터를 다운로드 할 수 있다.


그렇다면 웹상의 이미지를 실제로 추출하여 보자.







urlretrieve( )함수를 이용하여 파일을 다운로드 할 수있다.


이때 첫 번째 매개변수에는 URL이, 두 번째 매개변수에는 저장할 파일의 경로를 지정한다.


다음과 같이 간단한 코드로 PNG파일을 다운로드 할 수 있다.





그렇다면 request.urlretrieve( )함수를 이용하여 파일에 곧바로 저장하지 않고,


해당 데이터를 파이썬 메모리 위에(변수에 저장해서 활용할 수 있게) 올린 후 해당 파일을 저장해보겠다.





이전과 달리 request.urlretrieve( )함수를 사용하지 않고, request.urlopen( ) 함수를 사용하는 것을 확인할 수 있다.





지금까지는 특정 파일만 다운로드 하였는데,


html 홈페이지에 올라온 데이터를 한번 다운로드하여 보겠다.







정상적으로 웹페이지에 올라온 데이터를 다운로드 하는 것을 확인할 수 있다. 



그렇다면 URL에 매개변수를 추가해 요청을 전송하는 방법 또한 할 수 있을까?


물론 가능하다.


예제는 기상청의 RSS 서비스를 사용하여 서울/경기도의 날씨를 정보 웹페이지를 다운로드 하여 보겠다.








정상적으로 추출되는 것을 확인 할 수 있다.


그렇다면 기능을 확장하여 동적으로 다른 지역의 정보를 알아내는 코드를 보이겠다.