python 기본
프로젝트별로 파이썬 배포 패키지들을 설치하거나 업그레이드하기 위해 독립된 공간인 가상환경 설정 - venu
a = 1
b = 2
c = ['사과','귤']
b = {'name':'철수', 'age':20}
def add(a, b):
return a+b
if test > 3:
print("ok")
else:
print("X")
for list in lists:
print(list)
크롤링: 웹페이지로부터 원하는 데이터 추출
# requests 기본
import requests
r = requests.get('url')
rjson = r.json()
print(rjson)
# 크롤링 기본
import requests
from bs4 import BeautifulSoup
URL = "https://movie.daum.net/ranking/reservation"
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(URL, headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
# 선택자 사용
soup.select('태그명')
soup.select('.클래스명')
soup.select('#아이디명')
soup.select('상위태그명 > 하위태그명 > 하위태그명')
soup.select('상위태그명.클래스명 > 하위태그명.클래스명')
# 태그와 속성값으로 찾기
soup.select('태그명[속성="값"]')
# 한 개만
soup.select_one('위와 동일')
SQL(RDBMS) ex) MS-SQMl, My-SQL
행/열의 생김새가 정해진 데이터를 저장하는 것과 유사, 정형화 되어 있는 만큼, 데이터의 일관성, 분석에 용이
No-SQL ex) MongoDB
딕셔너리 형태로 데이터 저장, 자유로운 형태의 데이터 적재에 유리, 일관성 부족
mongoDB - Atlas, 클라우드 DB
from pymongo import MongoClient
client = MongoClient('url')
db = client.dbsparta
# 저장
doc = {'name':'bobby','age':21}
db.users.insert_one(doc)
# 한 개
user = db.users.find_one({'name':'bobby'})
# 여러개
all_users = list(db.users.find({},{'_id':False}))
# 바꾸기
db.users.update_one({'name':'bobby'},{'$set':{'age':19}})
# 지우기
db.users.delete_one({'name':'bobby'})
지니뮤직 순위 크롤링
import requests
from bs4 import BeautifulSoup
from pymongo import MongoClient
URL = "https://www.genie.co.kr/chart/top200?ditc=M&rtm=N&ymd=20230101"
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(URL, 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)'개발 > 기타' 카테고리의 다른 글
| 스파르타코딩클럽 웹개발 종합반 5주차 - AWS (0) | 2023.05.12 |
|---|---|
| 스파르타코딩클럽 웹개발 종합반 4주차 - Flask, GET, POST (0) | 2023.05.11 |
| 스파르타코딩클럽 웹개발 종합반 2주차 - Javascript, JQuery, Fetch (0) | 2023.05.09 |
| 스파르타코딩클럽 웹개발 종합반 1주차 - HTML, CSS (0) | 2023.05.08 |
| 백준 (BOJ) 문제 난이도 보기 (0) | 2023.05.06 |