뒤로
오혜영
오혜영 ·

#2 자랑할 것과 불충분한 것 (12.5~12.16)


A. 자랑할 것 :

selenium을 활용한 파이썬 리뷰 크롤링에 성공했다.

이번 생 처음으로 "코딩으로 유의미한 결과물"이 탄생했다


지난 주 월요일, 예정대로 Marketing Shot을

좀 더 가지런한 디자인 포맷으로 옮기는 작업을 하고 있었다.

이 중 고객 리뷰 부분은 100% 인간지능으로 내가 대충 읽고 키워드를 추출해서 써넣는 것이었는데...

갑자기 이 부분을 인터넷으로 긁어와서 좀 더 제대로 분석할 수 있지 않을까 하는 생각이 들었다.


찾아보니 그것은 웹 크롤링이라는 기법이었고

나는 JS 기초만 겨우 뗀 수준이었지만

파이썬 기초 문법도 거의 비슷하게 생긴 관계로

블로그 몇 개에서 찾아본 코드를 VS스튜디오에서 시도해 보았다.


당연히 첫날은 2~3시간 매달렸음에도 불구하고

모듈 임포트만 하고 전혀 코드를 이해하지 못해 다 실패했다.

(모듈 임포트도 에러 로그를 보고 하나씩 설치할 정도였으니 내 수준이 짐작 갈 것이다-_-)

안그래도 시간이 진짜 진짜 진짜 없는데,

내가 지금 하고 있는게 뻘짓인지 생산적인 짓인지 구분이 안 갔지만

뭔가 홀린 듯이 그냥 했다.


마침 그 다음 날은 운 좋게(?)도 코딩 멘토링을 받는 날이었다.

이 날 30분정도 멘토링을 받아 selenium라이브러리에 대해 설명을 듣고

Xpath값을 따서 겨우 한 줄의 코드를 읽어오는 데 성공했다.


그런데 혼자 해보니 되지 않는 것이었다.

그래서 밀리의 서재에서 완전 쌩기초 파이썬 문법 책을 보고

이 때에야 팩토링, 리스트, 반복문, 조건문을 제대로 이해했다.


내 기본 작업 시간 외 여러 유튜브, 블로그, 책 등등을 읽기 시작했다.

구글 colab에서 beautifulsoup를 이용한 크롤링을 시도해 보았고

정말 정말 단순한 코드로 네이버 검색결과 정도를 가져올수 있었다.


그런데 내가 크롤링하려는 사이트(스마트스토어)는 동적 웹이었기 때문에

결국 selenium 라이브러리를 써야했고

XPath대신 생소한 CSS 선택자를 활용해 다시 한 줄 크롤링을 할 수 있었다.

그 후 for문을 활용해 이 요소들을 리스트에 추가해 출력하는 것까지 완성했고,

'다음'버튼 클릭도 할 수 있게 만들었다.


그런데 이 코드가 내가 처음 목표한 웹 외에서는 element값을 읽을 수 없다고 했다.

결국 '다음'버튼도 CSS셀렉터를 따 와서 설정했더니


세상에, 내 코드가 다른 스마트스토어에서도 동작하잖아!


페이지 클릭하고 넘어가고 해야해서

시간은 좀 걸리지만 약 일주일 만에

어떤 스마트스토어 리뷰라도 DB화 할 수 있는 기술을 갖게 되었다.


물론 전문 개발자라면 "아이고 귀엽네~ ㅎ ㅎ "라고 생각하겠지만

깔짝깔짝 코딩을 배우기 시작한 지 근 2년만에 일어난 일이다.


단 너무 야매로 한 것 같아서

코드잇 웹 자동화 강의를 기초부터 다시 듣고 있다.

(연간 결제해놓은 코드잇에 이 코스가 있는지 몰라서

또 매우 많은 길을 돌아갔었다... -_-)


*혹시 크롤링에 관심이 있는 분들을 위해 크게 도움 받은 책/유튜브/강의를 적어놓겠다. 난이도 순 >

  1. 셜록 홈즈 만화로 배우는 파이썬 (정준우, 김민기 공저) :

진짜 프로그래밍 처음 해보는 사람도 이해할 수 있게 써진 책이다. 이 책에서 구글 colab사용법과 파이썬 기본 문법을 이해하고 넘어감. 밀리의 서재에 있음.


2.스타트코딩 '이것이 진짜 크롤링이다 - 기본편' (무료) :

https://www.inflearn.com/course/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%ED%81%AC%EB%A1%A4%EB%A7%81-%EA%B8%B0%EC%B4%88

현존하는 크롤링 웹 강의 중 가장 실용적인 강의가 아닐까 한다. '아니 이걸 공짜로 봐도 되나요' 싶을 정도로 크롤링을 실제로 어떻게 하는지 동작 원리부터 selenium 맛보기까지 차근차근 설명해 주신다.


3.코드잇 웹자동화 강의 :

https://www.codeit.kr/topics/web-automation

코드잇은 유료지만 강의 품질이 높고

웹 내에 코드를 직접 짜보고 채점할 수 있게 되어 있어서 제대로 공부하기 좋다.


B. 불충분한 것

  • 지난 주 너무 나만의 세계에 틀어박혀 있느라 로그를 빼먹었다.
  • 공부하고 일하고 싶어하는 욕구는 아무리 합리화를 하려고 해도

나 스스로 기대했던 '완벽한 엄마의 삶'과 겹치지 않는 부분이 있다.


평일 6시간밖에 일할 수 없는 4시 하원은 포기하고,

차근차근 종일반 적응을 시켜보기로 했다.

이렇게 하면 신랑도 하원을 시킬 수 있으므로

일하는 시간을 대폭 늘릴 수 있을 것이다.


  • 이제 슬슬 팀원의 필요성도 크게 느낀다. 마케팅+테크에 관심있고, 기존 시장에 같은 문제의식을 공유하며, 뭔가 새로운 걸 만들어 보고 싶어하는 사람이면 좋겠다.



민트컨디션

스타트업&SMB를 위한 마케팅 최적화 / 데이터 마케팅 컨설팅

9

댓글

로그인 후 댓글을 남길 수 있습니다.

ewfwqefqw
ewfwqefqw

당연히 첫날은 2~3시간 매달렸음에도 불구하고 모듈 임포트만 하고 전혀 코드를 이해하지 못해 다 실패했다. (모듈 임포트도 에러 로그를 보고 하나씩 설치할 정도였으니 내 수준이 짐작 갈 것이다-_-) 에서, 선생님의 수준을 짐작할 수 있었던 부분은 "모듈 임포트도 에러 로그를 보고 하나씩 설치할 정도"가 아니라, "그게 본인의 수준때문인줄 아는" 부분 이였습니다 모듈 임포트는.... 개발을 하면서 만날 수 있는 어려움 중, 정말 끔찍하고 어렵고 귀찮은 과정 중 하나입니다. 선생님이 부족해서가 아니라, 한마디로 정리하자면, 그거 원래 개같은거에요 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 바꿔말하자면, 그걸 성공했으면 진짜 70퍼는 끝낸거에요. 저도 최근에 크롤링했는데, 크롤링 코드 짜는것보다 크롬 업데이트 막고, 드라이버 버전 맞추고, 셀레니움 버전 맞추는데에 시간을 더썼습니다,,,, ㅎㅎ 고생 많으셨고, 앞으로는 적어도 크롤링에 한해서는 생각보다 별거없다는 사실을 알게되실꺼에요! 화이팅입니다!(물론 개뜬금없는곳에 막혀서 끝나고보니 5분이면 될걸 몇시간, 혹은 몇일씩이나 허비하는 일이 생길수도 있는데, 누구나 그런일이 생기니 너무 좌절하지마세요 ㅎㅎ)

오혜영
오혜영

아 이게 원래 골치아픈 거였군요 ㅋㅋ 뭔가 하면서도 모르는게 계속 생겨서 되돌아가고 되돌아가고 하면서 개발자분들의 고뇌(?)및 '응 이게 되네???'를 생생히 체험해볼수 있는 시간이었어요 ㅋㅋ 응원 너무 감사해요 ㅠㅠ 크롤링은 마케팅에 꽤 유용하게 쓰일거 같아서 더 연습해 보려구요!!

ewfwqefqw
ewfwqefqw

요즘 대학에서 비전공자들고 강제로(?) 코딩을 가르치는데, 종종 그들에게 질문을 받을때마다 "다른건 다 필요 없으니, 크롤링만이라도 할줄 알면 거의 대부분의 문과 직무의 실무에 활용 할 수 있을거다"라고 조언해요. 화이팅!

한석현
한석현

조금씩 극복해 나아가는 모습이 대서사의 서막과도 같은 글이었습니다 :) ㅎㅎ 화이팅!

오혜영
오혜영

뭐지?뭐지?하면서도 계속 하게 되는 매력이 있더라고요 ㅎ;; 재미있게 읽어주셔서 감사해요 ㅎ