일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 자바 백준 팩토리얼 개수
- ipfs bean
- kotiln const val
- nodejs rabbitmq
- 백준 2252 줄세우기
- 백준 특정한 최단 경로
- spring mongodb
- java 1509
- java 팩토리얼 개수
- 백준 연결요소 자바
- 안정해시
- kotiln functional interface
- 익명 객체 @transactional
- mongodb lookup
- rabbitmq 싱글톤
- spring mongodb switch
- kotiln const
- java 1238
- go
- spring mongoTemplate switch
- ipfs singletone
- 백준 1504 java
- spring mongoTemplate
- java 백준 1509
- 자바 1676
- java 파티
- Spring ipfs
- javav 1676
- Java Call By Refernce
- 전략 패턴이란
Archives
- Today
- Total
공부 흔적남기기
항해99 5기 시작전 웹개발 종합반 3주차 리뷰 본문
728x90
반응형
3주차 역시 중요하다고 생각되는 것들 복기
- 파이썬의 Requests 라이브러리 기본골격
import requests # requests 라이브러리 설치 필요 r = requests.get('http://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99') rjson = r.json() gus = rjson['RealtimeCityAir']['row'] for gu in gus: print(gu['MSRSTE_NM'], gu['IDEX_MVL'])
- 파이썬으로 크롤링,웹스크래핑할 때 기본 골격
import requests from bs4 import BeautifulSoup # URL을 읽어서 HTML를 받아오고, 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://movie.naver.com/movie/sdb/rank/rmovie.nhn?sel=pnt&date=20200303',headers=headers) # HTML을 BeautifulSoup이라는 라이브러리를 활용해 검색하기 용이한 상태로 만듦 soup = BeautifulSoup(data.text, 'html.parser') # select를 이용해서, tr들을 불러오기 movies = soup.select('#old_content > table > tbody > tr') # movies (tr들) 의 반복문을 돌리기 for movie in movies: # movie 안에 a 가 있으면, a_tag = movie.select_one('td.title > div > a') if a_tag is not None: # a의 text를 찍어본다. print (a_tag.text)
- RDBMS 와 No-SQL의 차이점
RDBMS는 Relational DataBase Management System의 약자로 관계형 모델을 기반으로 하는 데이터베이스 구조이다.
RDBMS는 정해진 행렬의 형태를 저장하며 fk 외래키를 사용하여 테이블 간 JOIN이 가능 하다는 것이 가장 큰 장점이다.
No-SQL은 Not Only SQL의 약자로 관계형이 아닌 다른 형태의 데이터베이스 구조를 띈다. NoSQL에서는 테이블 간 관계를 설정하지 않아 JOIN이 불가능 하지만, 행렬의 값이 자유롭고 성능이 빠르다는 장점이 있다.
- pymongo로 DB 조작하는 방법
from pymongo import MongoClient # pymongo를 임포트 하기(패키지 인스톨 먼저 해야겠죠?)
client = MongoClient('localhost', 27017) # mongoDB는 27017 포트로 돌아갑니다.
db = client.dbsparta # 'dbsparta'라는 이름의 db를 만듭니다.
# 'users'라는 collection에 {'name':'bobby','age':21}를 넣습니다.
db.users.insert_one({'name':'bobby','age':21})
# MongoDB에서 데이터 모두 보기
all_users = list(db.users.find({}))
# 참고) MongoDB에서 특정 조건의 데이터 모두 보기
same_ages = list(db.users.find({'age':21},{'_id':False}))
# 예시 - MongoDB에서 수정하기 오타가 많으니 이 줄을 복사해서 씁시다!
db.users.update_one({'name':'bobby'},{'$set':{'age':19}})
# 참고) MongoDB에서 삭제하기
db.users.delete_one({'name':'bobby'})
# 저장 - 예시
doc = {'name':'bobby','age':21}
db.users.insert_one(doc)
# 한 개 찾기 - 예시
user = db.users.find_one({'name':'bobby'})
# 여러개 찾기 - 예시 ( _id 값은 제외하고 출력)
same_ages = list(db.users.find({'age':21},{'_id':False}))
# 바꾸기 - 예시
db.users.update_one({'name':'bobby'},{'$set':{'age':19}})
# 지우기 - 예시
db.users.delete_one({'name':'bobby'})
3주차 과제 결과물
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)
db.musics.delete_many({})
soup = BeautifulSoup(data.text, 'html.parser')
musics = soup.select('#body-content > div.newest-list > div > table > tbody > tr')
for music in musics:
title = music.select_one('td.info > a.title.ellipsis').text
singer = music.select_one(' td.info > a.artist.ellipsis').text
rank = music.select_one('td.number').text
title = title.strip()
rank = rank.split('\n')
rank = rank[0]
db.musics.insert_one({'가수':singer,
'제목': title,
'순위': rank
})
music_list =list(db.musics.find({}, {'_id': False}))
for music in music_list:
print(music['순위'], music['제목'], music['가수'])
728x90
반응형
'항해 99 5기' 카테고리의 다른 글
코테 2번째 문제 (0) | 2022.01.20 |
---|---|
항해 1주차 웹개발 미니 프로젝트 후기 (0) | 2022.01.17 |
항해 99 1주차 WIL (0) | 2022.01.11 |
항해99 5기 시작전 웹개발 종합반 2주차 리뷰 (0) | 2021.12.11 |
항해99 5기 시작전 웹개발 종합반 1주차 리뷰 (0) | 2021.12.11 |