Web/기타

[스파르타 코딩클럽] 3주차 실습일지 - 웹 크롤링, MongoDB

daeunnniii 2021. 7. 11. 03:04
728x90
반응형

3주차 과제

- 지니뮤직의 1~50위 곡을 크롤링하기!!

import requests
from bs4 import BeautifulSoup
from pymongo import MongoClient

client = MongoClient('localhost', 27017)
db = client.dbsparta

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('https://www.genie.co.kr/chart/top200?ditc=D&ymd=20200403&hh=23&rtm=N&pg=1',headers=headers)

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

musics = soup.select('#body-content > div.newest-list > div > table > tbody > tr')
for music in musics:
    m_rank = music.select_one('td.number')
    m_title = music.select_one('td.info > a.title.ellipsis')    # class 이름이 title이면서 ellipsis인 하나의 html 요소를 선택
    m_artist = music.select_one('td.info > a.artist.ellipsis')
    rank, title, artist = m_rank.text, m_title.text, m_artist.text
    print(rank[:2].strip(), title.strip(), artist.strip())

 

배운 내용 정리

https://daeunnniii.tistory.com/100

 

[Python] Beautifulsoup을 활용한 네이버 영화 크롤링 및 MongoDB에 웹스크래핑 결과 저장하기

1. beautifulsoup4 패키지 설치 및 크롤링 기본 셋팅 import requests from bs4 import BeautifulSoup # 타겟 URL을 읽어서 HTML를 받아오고, headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x..

daeunnniii.tistory.com

 

 

https://daeunnniii.tistory.com/101

 

Python으로 PyMongo 사용 방법 정리 (INSERT / FIND / UPDATE / DELETE)

pymongo로 mongoDB 조작하기 (INSERT / FIND / UPDATE / DELETE) 1) INSERT from pymongo import MongoClient client = MongoClient('localhost', 27017) # mongoDB는 27017 포트로 돌아간다. db = client.dbspar..

daeunnniii.tistory.com

 

회고

이전에 selenium 이나 beautifulsoup을 크롤링을 할 때 구글링으로 오픈소스를 활용해서 프로젝트를 진행한 적은 있었지만, 크롤링이 어떠한 원리로 이루어지는지 자세히 정리할 기회가 없었다. 하지만 이번 스파르타 코딩클럽 강의를 들으면서 웹 크롤링, 스크래핑이 어떻게 이루어지는지 잘 정리할 수 있었던 것 같다. 또한 웹 스크래핑 결과를 DB에 저장하는 과정까지 실습해볼 수 있어 더욱 의미있었던 것 같다. 평상시에 MySQL을 다루는 데에 더 익숙했는데, MongoDB를 활용해보면서 두 데이터베이스의 차이점을 더욱 느껴볼 수 있었던 시간이었다. 이번 기회에 SQL과 NoSQL의 차이를 잘 이해하고 넘어가야겠다.

 

 

728x90
반응형