Python 맛보기

J.H.H.·2021년 9월 12일
0
post-thumbnail

MongoDB를 이용해 (robo 3t를 통해 확인) 말로만 많이 듣던 파이썬을 드디어 직접 다뤄보는 경험을 했다. 앞서 기초의 기초를 배웠던 html, css, javascript 보다 훨씬 직관적인 명령어에 훨씬 배우는 동안 마음(?)이 편했다. 스파르타에 이범규 튜터님 강의가 워낙에 Bob Ross처럼 "참 쉽죠?"하며 진짜 (수강생들이 느끼기에) 쉽게 가르친다 생각했는데, 파이썬 강의는 앞선 주차에 비교해 정말 수업 따라가기가 쉬웠다. (나는 스파르타 웹개발 종합반 수업 전에는 코딩이라는 걸 다뤄본적이 없는 사람이다...)

쨌든 3주차가 끝났고 개발일지를 써본다. 숙제 코드다. 더불어 자가 진단을 해본다.

2가지 문제점
1) 구글링을 해서 코드를 찾긴했는데 정작 코드가 아닌 ''혹은 :를 깜박해서 여러번 에러가 떴다. 조금 더 꼼꼼히 눈 똑바로 뜨고 코드를 써나갈 필요를 느꼈다.

2) 이번 파이썬 과제가 유독 페이지를 여러번 왔다갔다 (연결 주소 copy select 때문에)했어서 정신 없었지만 요령이 생겼다. 필요한 요소를 먼저 읽고 파악한 후 관련된 정보를 연속적으로 웹스크래핑 해야겠다는 교훈을 얻었다. ("등수 찾고 주소 따고, 또 뭐 따야하더라...생각하고 진행하면 일이 너무 더디다.")

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')

trs = soup.select('#body-content > div.newest-list > div > table > tbody > tr')
for tr in trs:
title = tr.select_one('td.info > a.title.ellipsis').text.strip()
rank = tr.select_one('td.number').text[0:2].strip()
artist = tr.select_one('td.info > a.artist.ellipsis').text
print(rank, title, artist)

profile
코린이를 넘어 데이터 시각화를 휘두르는(?) 그날까지

0개의 댓글