항해99 4기 Day 3

POINT·2021년 11월 3일
0

항해99

목록 보기
3/34

21.11.03 항해99 4기 3일차

📌 TIL

  • 교보문고 베스트셀러 크롤링 후 가공하여 db 콜렉션만들기
    미니프로젝트에 베스트셀러를 정리하여 보여주는 페이지 만듦
db = client.bestseller
# 교보문고 베스트셀러 url에서 책의 제목, 저자, 출판사, 발간 날짜, 이미지 정보를 가져오고 bestseller 콜렉션에 저장
def insert_bookinfo():
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
    data = requests.get('http://www.kyobobook.co.kr/bestSellerNew/bestseller.laf?orderClick=d79', headers=headers)

    soup = BeautifulSoup(data.text, 'html.parser')

    lis = soup.select('#main_contents > ul > li')

    for li in lis:
        image_url = li.select_one('div.cover > a > img')['src']
        title = li.select_one('div.detail > div.title > a > strong').text
        if title is not None:
            stat = li.select_one('div.detail > div.author')
            stat_temps = stat.text.split()
            author = ""
            publish = ""
            publish_date = ""
            flag = 0
            for stat_temp in stat_temps:
                if stat_temp == "|":
                    flag += 1
                elif stat_temp == "저자" or stat_temp == "더보기":
                    pass
                else:
                    if flag == 0:
                        author += stat_temp + " "
                    elif flag == 1:
                        publish += stat_temp + " "
                    else:
                        publish_date += stat_temp + " "
            doc = {
                'title': title,
                'author': author,
                'publish_date': publish_date,
                'publish': publish,
                'image_url': image_url
            }
            db.bestseller.insert_one(doc)

# 기존 bestseller 콜렉션을 삭제 후, 크롤링하여 DB에 저장
def insert_all():
    db.bestseller.drop()  # bestseller 실시간 최신화를 위해 콜렉션 삭제
    insert_bookinfo() # 크롤링하여 DB에 저장

# 실행하기
insert_all()
  • ajax랑 jquery공부
    항해99 4기 시작 전, 사전준비기간 때 했었는데 보충이 필요하다고 생각되어서 필요한 부분만 인강듣고 개인적으로 공부를 다시 했습니다.

  • git과 sourcetree
    아직 익숙하지 않은 툴이라서 그런가 팀원 모두 다같이 사용해보려고 하는데 하나로 합쳐서 재배포하는데 너무 오래걸립니다.
    각자 맡은 파트 진행함에 있어서 브랜치 만들고 하다가, 나중에 합병할 때 문제가 발생해서 합치는데 너무 힘들었습니다. 뭔 충돌은 계속나고 브랜치 그래프 모양도 제각각이고.. 결국 어찌저찌 되긴했습니다. 생활코딩 강의가 도움이 많이 되었습니다.

📒 ...

항해 시작전에는 매일 8시간 9시간씩 자다가 3일연속 4시간정도만 잤더니 눈이 오지게 건조하고 커피없으면 코딩하다가 기절할 것 같습니다.
근데 이렇게 해도 시간이 모자랍니다. 모르는 것이 너무 많다보니 배울 것도 많은데 익힐시간도 필요해요. 익숙해지는 건 당연히 멀었고..

지난 2년동안 ncs 문제집만 풀다가 코딩하려니까 만만치 않네요. 그래도 조금씩 느는 것 같아 기분은 좋습니다.
내일도 파이팅

profile
기록은 기억을 지배한다.

0개의 댓글