티스토리 뷰

약 2개월 동안 파이썬에 대한 공부와 웹스크래핑 프로젝트를 동시에 진행했다. 소기의 성과도 있었지만 아직 가야할 길은 멀다.

Python 스터디

토요일에 코딩학원을 다녔다. 대개 초중학교 학생들이 주로 다니는데 지난주에는 주부(?)도 목격하였다. 요즘은 유튜브에 워낙 많은 동영상들이 올라와 있기 때문에 python 스터디 자료를 찾는 것은 어려운 일이 아니다. 공부할 자료는 널리고 널린 것이다.

 

유튜브를 통해서는 충분히 어느 정도의 공부는 가능한 상황이지만,학원을 다니는 이유는 그 시간에 python을 의무적으로 스터디를 할 수 있을 것이기 때문이다. 회사업무에 바빠 주중에 하지 못한 공부를 토요일 2시간은 오로지 파이썬 스터디를 할 수 있는 것이다. 

 

두번째, 학원에서 내가 하고자 하는 프로젝트에 대한 가이드가 되어 주었으면 해서이다. 이 부분은 조금 아쉽지만(학원에서는 내가 하고자하는 스크래핑 관련 커리큘럼이 없다. 학생들을 대상으로 코딩수업을 하기 때문이다. 당장 써먹을 수 있는 것들 보다는 코딩 자체에 초점이 맞춰져 있다.), 현재는 초기 목적과는 달리, 방향을 바꿔서 파이썬 문법을 공부하고 있다. 뭐든지 기초가 튼튼해야 하는 법.

 

앞으로 학원은 2달정도 더 다닐예정이다. 수업도 기초적인 부분에 집중에서 진행할 예정이다.

 

웹크롤러 만들기

파이썬 공부와 더불어 웹스크래핑 프로젝트를 동시에 진행하였다.

 

웹스크핑의 목적은 무엇인가?

웹페이지의 정보(대부분은 텍스트나 이미지 들일 것이다.)들을 가져와서 특정한 목적에 활용하기 위함이다. 수집해온 1차 데이터들을 가지고 2차적으로 유의미한 결론을 도출할 수도 있을 것이다.

 

나의 경우에는 데이터 수집에 목적을 두고 있다.

첫번째 쇼핑몰 물품들의 제품정보와 이미지를 가져와 나의 쇼핑몰에 활용하기 위함이고 두번째는 재고나 가격정보를 빠르게 파악하기 위함이다.

따라서 웹스크래핑은 두 가지의 큰 방향성을 가지고 추진하였다.

 

첫번째는 쇼핑몰의  제품별 정보나 이미지를 스크래핑해서(당연히 저작권 등의 문제점을 확인하여야 하며, 사용가능한 데이터인지 여부는 늘 확인하여야 하는 사항이다.) 이셀러스 등 프로그램을 통해 다양한 오픈마켓에 제품을 올리는 것이다.

 

내가 필요한 정보를 파악하고 정보를 긁어오면 되는 건데, 현재까지 진행상황은  텍스트는 쉽게 스크래핑을 하였으나, 이미지의 경우에는 어려움을 겪고 있는 상황이다.

해당 웹페이지가 썸네일이 있고 썸네일을 클릭하면 원본이미지가 보여주는 형태로 구성되어 있는데 정확하지는 않지만 javascript로 구성되어 있는 상태인것으로 보여지며, selenium 모듈을 이용해 볼 예정이다.

 

구글링을 통해서 문제를 해결하고 있지만 내가 원하는 정보가 웹페이지에서 어떻게 구성되는지 또는 구동되는지도 파악이 안된 상태이기 때문에 구글링이 안되는 상황이다. 질문을 모르기 때문이다.

그래서 웹페이지를 만드는 언어인 html 스터디도 할 예정이다. 

 

두번째는 재고 파악이다.

재고파악은 꽤 많이 진척이 되었다.

해당 쇼핑몰의 제품 url을 내가 가지고 있고 url을 순서대로 입력해서 특정 정보를 스크래핑 할수 없으면 품절이고 반대로 특정 정보를 가지고 올 수 있으면 재고 있음으로 분류하여 진행하였다. 재고파악 코드는 완성한 상황이다.

 

다만 아쉬운 점이 속도 부분이고, 일전에 겪은 경험이지만 내가 수집하고자 하는 사이트에서 IP를 차단하여 ip주소를 변경한 경험이 있는데 이 부분을 어떻게 해결할지 고민중에 있다. 

 

고민은 고민대로 하고, 재고파악 코드는 완성한 상태에서 내가 아닌 다른 사람도 이용할 수 있도록 프로그램으로 만들어서 공유할 예정이다. 그래서 앞으로는 GUI 스터디와 실행파일을 만드는 일을 할 예정이다.

 

 

맺음말

초기 유튜브를 볼때만 해도 지금 당장이라도 웹크롤러를 만들수 있을꺼 같았지만, 착각이였다.

웹페이지가 똑같을 수가 없다. 유튜브가 모든 것을 해결해 주진 않는다. 똑같이 따라하면 될 줄 알았다.

 

스스로 코드를 짜보고 문제해결을 위해 고민하고 경험치를 쌓아야한다. 

"Keep Goning"