내일배움캠프 11일차

Drumj·2022년 5월 2일
0

내일배움캠프

목록 보기
11/80

<오늘의 학습>

selenium과 requests는 무엇이 다른가.

requests가 html에서 바로 데이터를 스크래핑 해오는 것이라면
selenium은 html에서 데이터를 실행시킨 후 그 데이터를 스크래핑 해오는것...?

아침에 수업 들었을때 뭔가 빡!! 하고 느낌이 왔는데 다시 정리 하려니까 좀 어색하네;;
requests로 뮤직차트의 좋아요 개수를 긁어오니 0이라고만 긁어 왔는데
selenium으로 긁어오니 좋아요 개수가 정확하게 긁어와 졌다
selenium이 할 수 있는게 더 많고 상위호환의 느낌이다.

for i in range(5):
    try:
        btn_more = driver.find_element_by_css_selector("#foodstar-front-location-curation-more-self > div > button")
        btn_more.click()
        time.sleep(5)
    except NoSuchElementException:
        break
#   try - 버튼 누르는걸 시도해라! 근데 왜 try로 하나?? 더보기 버튼이 없을수도 있다(에러)
#   NoSuchElementException 에러,예외가 발생하면 break 끝내라 for 문을~
#   그렇다면 try는 예외가 있을수도 있는 상황에서 쓰면 좋을 것이다~

강의를 들으면서 중간중간 왜 이렇게 코드를 썼을까 하는 부분에 주석으로 설명도 달았다.
다른 사람들이 for안에 try와 except, break를 쓰는 이유가 뭘까 했는데 이런 이유가 있었다.
문법을 잘 모르니 기초가 부족하다 ㅠㅠ...

if action_receive == "like":
    db.matjips.update_one({'title': title_receive, 'address':address_receive}, {"$set": {"liked": True}})
else:
    db.matjips.update_one({'title': title_receive, 'address': address_receive}, {"$unset": {"liked": False}})
return jsonify({'result':'success'})

이 코드가 젤 신기했다. 따로 doc={} 에서 liked를 만들지 않고 if 문 안에서 update_one을 사용해서 liked에 True와 False를 넣었다.(False는 넣지 않고 unset으로 없애는 거긴 하지만)
심화과정을 하면 할 수록 문법적인 부분이 딸린다는 느낌이 든다. python의 문법도 정리가 잘 되지 않았지만 flask라는 프레임워크에서도 어떻게 말을 할 건지도 정리가 되지 않아서 헷갈리는 부분이 많다. 그렇게 쓰라니 그렇게 써야지 하며 외워서 하지만 끌려다니는 느낌이 강하게 들어서 조금 어렵다

-- 오늘의 한 줄--

문법을 알아야 깔끔하게 이해된다. 하지만? 하면서도 익힐 수 있다는것~~
긍정적으로 가자~~~

0개의 댓글