220809(ν)
πͺ΄ μ±μ₯μΌμ§
μ±
ν볡ν μ΄κΈ°μ£Όμμ(μ¨μΈ λ€μ΄μ΄)
μ λ΄μ©μ μκ·Ήλ°μ μμνλ μλ°ν μ±μ₯κΈ°λ‘
μ΄μμλ κ½κ³Ό μ£½μ κ½μ μ΄λ»κ² ꡬλ³νλκ°?
μ±μ₯νκ³ μλ κ²μ΄ μ΄μ μλ κ²μ΄λ€.
μλͺ μ μ μΌν μ¦κ±°λ μ±μ₯μ΄λ€!
π³ ν€μλ
ν¨ν€μ§
λͺ¨λ(κΈ°λ₯λ€μ λ¬Άμ)μ λͺ¨μλμ κ²μΌλ‘, μ΄λ° ν¨ν€μ§μ λ¬Άμμ λΌμ΄λΈλ¬λ¦¬κ³ ν¨. μΌλ°μ μΌλ‘ ν¨ν€μ§μ λΌμ΄λΈλ¬λ¦¬λ νΌμ©ν΄μ μ¬μ©
python
κ°μ νκ²½(Virtual Environment)
κ°μ μμ€ν
μμ μ€νλλ λ€λ₯Έ νμ΄μ¬ μμ© νλ‘κ·Έλ¨λ€μ λμμ μν₯μ μ£Όμ§ μκΈ° μν΄μ λ°λ‘ λ°°ν¬ ν¨ν€μ§λ€μ μ€μΉ λ° μ
κ·Έλ μ΄λν μ μκ² ν΄μ£Όλ 격리λ
μ€ν νκ²½
- νλ‘μ νΈλ§λ€ μ¬μ©νλ ν¨ν€μ§λ λ€λ₯΄κ³ , κ·Έ λ²μ μ΄ λ€λ₯΄κΈ°λ ν¨. μ»΄ν¨ν° ν λμμ μ¬λ¬ νλ‘μ νΈλ₯Ό μ§ν μ, κ° νλ‘μ νΈλ§λ€ κ°μ νκ²½μ λ§λ€κ³ νμν ν¨ν€μ§λ₯Ό μ νμ μΌλ‘ ꡬμ±νμ¬ νμ©ν μ μμ
<!-- νλ‘μ νΈ ν΄λμμ .venvλΌλ ν΄λ μμ± -->
python3 -m venv .venv
<!-- κ°μνκ²½ νμ±ν -->
source .venv/bin/activate
<!-- νμ±ν ν ν¨ν€μ§ μ€μΉ(κ°μ νκ²½μ μ€μΉλ¨) -->
pip install requests
python
requests ν¨ν€μ§
import requests
r = reqeusts.get('api url')
rjson = r.json()
print(rjson) # λ°μ΄ν° νμΈ
python
μΉ μ€ν¬λ μ΄ν(scraping) feat.bs4
μΉ μ€ν¬λ μ΄νμ΄λ μΉ νμ΄μ§μμ μνλ λΆλΆμ λ°μ΄ν°λ₯Ό μμ§ν΄μ€λ κ²μ μλ―Έ
π΄ ν¬λ‘€λ§(crawling) μλννμ¬ μ£ΌκΈ°μ μΌλ‘ μΉ νμ΄μ§λ₯Ό λμλ€λλ©° λΆλ₯/μμΈνκ³ μ λ°μ΄νΈ λ λΆλΆμ μ°Ύλ λ±μ μΌμ νλ κ² μ°Έκ³ : μ€ν¬λ μ΄ν vs ν¬λ‘€λ§
import requests
from bs4 import BeautifulSoup
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)
# BeautifulSoup λΌμ΄λΈλ¬λ¦¬μ ν΅ν΄ HTMLμ κ²μνκΈ° μ©μ΄ν μνλ‘ λ§λ¦
# soupμ΄λΌλ λ³μμ "νμ±νκΈ° μ©μ΄ν html"μ΄ μ μ₯λ¨
soup = BeautifulSoup(data.text, 'html.parser')
# λ°μ΄ν° νμΈ
print(soup)
DB(DataBase)
RDBMS(SQL)
- μμ μ²λΌ λ°μ΄ν°λ₯Ό νκ³Ό μ΄μ ν ννλ‘ μ μ₯
- λ°μ΄ν°κ° μΌκ΄μ μ΄κ³ λΆμμ΄ νΈν¨
- λ¨, μ€κ°μ μ΄(컬λΌ)μ μΆκ°νλ λ±μ΄ μ΄λ €μ
NoSQL
- λμ λ리 ννλ‘ λ°μ΄ν°λ₯Ό μ μ₯
- λ°μ΄ν°λ§λ€ κ°μ νλκ°μ κ°μ§ νμκ° μμ΄ λΉκ΅μ μμ λ‘μ΄ λ°μ΄ν° μ μ¬ λ°©μ
- λ¨, κ·Έλ§νΌ λ°μ΄ν°μ μΌκ΄μ±μ΄ λ¨μ΄μ§