TIL 2일차 - 웹 크롤링 그리고 깃 연동

박찬웅·2023년 2월 8일
0

항해99

목록 보기
8/105

23년 2월 7일

배운 것

영화 웹 크롤링을 하였고, 그 크롤링 한 것을 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
    API 명세서
    기능이름 / 클라이언트에서 서버로 보내줄 것 / 서버에서 클라이언트로 보내줄 것 / 메소드 / urel
  • JWT 암호화 기능

또한 잘하는 팀원 두분이 로그인과 게시판 구현을 하고 있었는데 이게 어떤 API를 사용하는지 중요하였다. 그리고 특히 로그인을 구현한다면 그 부분이 다른사람한테 보이면 큰일이 나기 때문에 JWT를 한번 생각해보라고 말씀해주셨다.
고로 내일은 위에 있는 개념을 숙지해보는 것을 목표로 하고, 앞으로 이후 토이프로젝트 어떤걸 할지도 의논해봐야 겠다.

profile
향해 13기 node.js 백앤드

0개의 댓글