영화 웹 크롤링을 하였고, 그 크롤링 한 것을 mongoDB에다 넣었다. 그리고 아직 서툴어서 그런지 일단은 데이터 복붙을 해서 나타내는 작업만 진행하였다. 그리고 깃허브를 잠깐 팀원들이랑 배웠고, 파이참에 깃을 연동을 하였다.
먼저 웹크롤링을 먼저 시도하였다. 내가 한 크롤링은 다음 영화의 주간 박스오피스에 가서 영화 포스터 이미지, 영화 제목, 개봉날짜를 크롤링 하였다. 그런 다음에 몽고디비에다 다음과 같이 저장하였다.
링크 : 다음 영화 주간 박스오피스 순위
movies = soup.select('#mainContent > div > div.box_boxoffice > ol > li')
for movie in movies:
a = movie.select_one('div > div.thumb_cont > strong > a')
b = movie.select_one('div > div.thumb_cont > span > span:nth-child(1) > span')
c = movie.select_one('div > div.thumb_item > div.poster_movie > img')
if a is not None:
category = '영화' # 한 종류의 카테고리를 나타낼때는 변수형으로
title = a.text # 텍스트 추출
date = b.text # 텍스트 추출
image = c.get('src') # 태그의 속성값을 추출할 때에는 get메소드를 이용한다. [element.get('속성값')]
print(category, image, title, date)
# doc = {
# 'category': category,
# 'image': image,
# 'name': title,
# 'date': date
# }
# db.culture.insert_one(doc)
근데 여기서 젤 어려웠던 것은 이미지를 크롤링 하는게 상당히 생소했던 개념이였다. 직접 스스로 코드를 짜봐도 계속 이미지만 깨져서 나왔다. 결국 구글링을 통해서 image = c.get('src')를 알게 되었고 적용하니까 드디어 이미지가 나와서 좋았다. 이제 몽고디비에다 데이터를 저장하려고 하는데 맨 마지막 데이터 하나만 저장 되는 것이였다. 이것저것 원인을 찾아보니까 줄 맞춤이 틀려서 그랬던 것이였다. 파이썬은 그만큼 줄 맞춤이 중요하다는 것을 알게 되었다.
이때까지는 팀원분들과 합치지 않고 개인 프로젝트에서만 자꾸 하다보니까 코드들을 합쳐야 하기 때문에 깃허브를 배우게 되었다.
깃허브 아이디는 1년전에 가입을 했었었다. 다만 이 당시때 깃허브는 병합, 커밋, 푸시, 풀 이런 개념은 몰랐고 다운로드 해서 코드만 받는 것만 했었기 때문에 제대로 된 깃 사용법은 거의 몰랐었다. 그래서 이번에 팀원들과 함께 배웠다.
링크 : 깃허브
그럼 다음 팀원들 코드를 합쳐서 본격적으로 협업 한다는 것을 배웠다.
오늘 해결 한 것은 아까 말한 영화 순위 크롤링 한 것과, 깃 허브 사용법에 대해서 스스로 공부하였다. 그리고 각 팀원들의 코드를 브랜치 하고 병합을 하였다.
웹개발 종합반 강의노트 위주로 코드를 작성하였다. 물론 이 코드를 전부 외워서 치는것은 아니다. 이전에 내가 적었던 코드들을 가져와서 그 일부분만 수정하는 것이라는 것을 알았다. 아까도 말했 듯이, 파이썬은 줄 맞춤이 젤 중요하다. 줄 맞추지 않고 코드를 짜면 내가 원하는 결과가 안 나온다는 것을 알게 되었다.
이처럼 오류 나타내는 것을 겁 먹지 말고 해결하면 확실히 좋은 성취감을 얻는 것 같다. 이게 바로 개발자의 묘미일까 생각한다.
어제 너무 피곤해서 다음날 아침에 일어나서 미뤄진 TIL을 적고 있었다. 이런일은 가급적 일어나지 않도록 주의를 해야겠다. 정 TIL 적기가 힘들면 WIL이라도 꼭 적는걸 노력해보는 것으로 한다.
저녁에 기술매니저님이 하는 말씀이 무작정 코드를 짜고 프로젝트를 완성하는 것도 좋지만, 우리가 왜 이런 코드를 사용하는지, 우리가 사용하는 개념을 정리 할 필요가 있어 보인다고 말씀 해 주셨다.
또한 잘하는 팀원 두분이 로그인과 게시판 구현을 하고 있었는데 이게 어떤 API를 사용하는지 중요하였다. 그리고 특히 로그인을 구현한다면 그 부분이 다른사람한테 보이면 큰일이 나기 때문에 JWT를 한번 생각해보라고 말씀해주셨다.
고로 내일은 위에 있는 개념을 숙지해보는 것을 목표로 하고, 앞으로 이후 토이프로젝트 어떤걸 할지도 의논해봐야 겠다.